Advertisement

【青少年CTF】WP-Misc-你会运算吗

阅读量:

你会运算吗


考点:16进制位移,0宽隐写,steghide密码爆破

下载附件得到一张图片和一个需要密码的压缩包。

尝试打开图片,未果,使用010editor查看。

取反:

复制代码
 f=open("1.jpg",'rb')

    
 f1=f.read()#二进制形式
    
 withopen('flag.jpg','wb') asf2:
    
     foriinf1:
    
     ifi==0:
    
         f2.write(bytes([0x0]))
    
     #这里的b是int形式,要转换成bytes时,使用bytes(),且里面的内容需要加[]
    
     else:
    
         f2.write(bytes([0x100-i]))
    
 f.close()
    
 f2.close()
    
    
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/3GalqP62oVL9MZKn8iEerzmBOuf0.png)

打开生成的图片,获得压缩包密码。

解压后获得两张图和一个txt文本。

3.jpg还是运用刚才的16进制取反脚本即可获得后半段flag。

查看txt文本,提示给出密码,但是需要爆破,猜测为大小写组合爆破。

推测图片2使用steghide隐写。

编写爆破脚本:

复制代码
 importos

    
 ​
    
 defall_casings(input_string):
    
     ifnotinput_string:
    
     yield""
    
     else:
    
     first=input_string[:1]
    
     iffirst.lower() ==first.upper():
    
         forsub_casinginall_casings(input_string[1:]):
    
             yieldfirst+sub_casing
    
     else:
    
         forsub_casinginall_casings(input_string[1:]):
    
             yieldfirst.lower() +sub_casing
    
             yieldfirst.upper() +sub_casing
    
 ​
    
 if__name__=='__main__':
    
     forxinall_casings("qsnctf"):
    
     os.system("steghide extract -sf 2.jpg -p "+x)
    
     print(x)
    
    
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/Zkf6hvgP81oSMUyXNQOeLAbR25l4.png)

查看flag1.txt。

发现0宽隐写。

使用在线网站提取,获得前半部分flag。:http://330k.github.io/misc_tools/unicode_steganography.html

全部评论 (0)

还没有任何评论哟~