CTF show 红包题第一弹

admin 2022年1月5日23:01:13CTF专场评论8 views799字阅读2分39秒阅读模式

>

>

CTF show 红包题第一弹

_yu_

题目地址:https://ctf.show

解压缩压缩包得到如下文件
CTF show 红包题第一弹
每个压缩包中都存在一张图片,用010editor打开第一张图片,在二进制的最后发现了base64
CTF show 红包题第一弹
依次打开第二第三张图片,均存在base64,猜测每一张图片中均存在部分base64片段为,刚好每一张的base64长度为100。接下来就是去将所有的base64连起来。
介于图片数量过多,所以使用通过脚本进行操作(写的脚本过于啰嗦,见谅)。
将脚本放入压缩包存在的文件夹下。

import os
import zipfile

def zips():  #处理压缩包
    for i in range(1,87):
        zip_file = zipfile.ZipFile(str(i)+'.zip')
        zip_list = zip_file.namelist()  #获取压缩包中的文件
        for f in zip_list:
            zip_file.extract(f, './a')      #将压缩文件放入‘a’文件夹下
        zip_file.close()

def base(): #处理图片中的base64
    flag=""
    for i in range(1,87):
        path ="a/"+ str(i)+".jpg"
        num = os.path.getsize(path)     #获取图片的大小
        f = open(path,'rb')
        f.seek(int(num)-100)                    
        s =  f.read(100)                    #读取最后100个字节
        flag+=bytes.decode(s)       
        f.close()    
    f1 = open('flag.txt','w')
    f1.write(flag)

if __name__=="__main__":
    zips()
    base()

最后得到一张图片的base64编码。
把得到的base64编码放入 https://feling.net/base64/ 获得二维码图片,扫码得flag。
在这里插入图片描述

如有错误或者更好的方法欢迎在留言中提出。


特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日23:01:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  CTF show 红包题第一弹 http://cn-sec.com/archives/719804.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: