复盘7.26-7.30+8.2-8.3 misc 方向解题方法
图片题
用到最多的工具就是010editor、winhex、Stegsolve、puzzlesolver、PS等等
1、对于单张图片,放到010editor中
查看文件类型,修改成对应的文件后缀
查看ASCII码部分有没有暗示,有flag.txt等文件可用foremost分离,出现Photoshop就放到PS里面看图层
查看IDAT块有没有多出来的,有的话用tweakpng把正常的IDAT块删除,异常的保存成新文件查看
如果图片显示不完整,用puzzlesolver,imagetools—fix—进行图片宽高爆破
2、对于多张图片,目前遇到的是黑白纯色图表示二进制,利用黑白的md5值不同,python脚本运行
3、对于gif:
Stegsolve抽帧
puzzsolver—imagetools—拆分gif/gif帧间隔
文本题(无附件)
这种基本就是各种编码、密码、进制转换,如base64、摩斯电码,着重观察
1、繁体字
与佛论禅,注意前面要加佛曰两个字
2、字母数字
看题干,比如攻防世界中的【如来十三掌】,就用到了rot13编码
比如攻防世界中的【掀桌子】
官方wp是【每两个一组,将16进制转换为10进制,减去128以后输出 ascii】
但是我觉得用户Orino的WP更符合题目(?
3、base64隐写
我们知道,base64是6bit编为1个字符,而1个字节是8bit,因此base64可能会出现3种情况:刚好能编完(例如3个字节的字符串base64加密后有4个字符)、剩余2bit(例如2个字节的字符串base64加密后第3个字符只编码了4bit,此时使用=补充6bit)、剩余4bit(例如1个字节的字符串base64加密后第2个字符只编码了2bit,此时使用==补充12bit),由于第3/2个字符只编码了4/2bit,所以只有前面被编码的bit是有效的,而后面的bit则在正常情况下默认填0,因此可以将想隐写的数据隐藏在后面的bit中,即:1个=可以隐藏2个bit
我们将这些bit读出来,拼在一起转换为字符串即可获得flag
————————————————
版权声明:本文为CSDN博主「古月浪子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tqydyqt/article/details/102002577
直接上解密脚本:
import base64
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('stego.txt', 'rb') as f:
bin_str = ''
for line in f.readlines():
stegb64 = str(line, "utf-8").strip("\n")
rowb64 = str(base64.b64encode(base64.b64decode(stegb64)), "utf-8").strip("\n")
offset = abs(b64chars.index(stegb64.replace('=', '')[-1]) - b64chars.index(rowb64.replace('=', '')[-1]))
equalnum = stegb64.count('=') # no equalnum no offset
if equalnum:
bin_str += bin(offset)[2:].zfill(equalnum * 2)
print(''.join([chr(int(bin_str[i:i + 8], 2)) for i in range(0, len(bin_str), 8)]))
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/xiao__1bai/article/details/119819631
压缩包
1、如果解压显示损坏,放到winhex中查看文件块
附RAR文件块知识(我也还没太搞懂)
2、解压时显示需要密码,可以考虑伪密码
winhex打开,搜索16进制504B0102,从50开始算,第九第十个字符为加密字符,改为00 00,重新保存再打开解压
例题是攻防世界的【base64stego】
流量包
主要使用wireshark、formost
例题是攻防世界的【功夫再高也怕菜刀】
一下载附件,打开发现是流量包,然后我们使用foremost分解一下,得到一个加密的压缩包
二使用wireshark打开流量包,查找flag,选择第1150个,右键,追踪流 -> TCP 流
三从 FFD8FF 开始到 FFD9 复制出来,保存为jpg格式,打开图片
注意第三步,复制后要在winhex新建文件,粘贴在右侧ASCII区域,格式选择ASCII Hex,载保存即可
在浏览器中全选,复制粘贴,看看有没有异常的东西
最后,这就是我最近几天学习misc 的小小的复盘总结,
密码、编码以及文件块这几部分还是没有了解透彻,wireshark、Burpsuite这两个工具还不是很会用,python语言比较薄弱