题目链接
链接:https://pan.baidu.com/s/1HEiFvxBkeg9VF1yNpZZpPQ
提取码:beby
题解
XCTF2020高校抗疫赛的一道misc题。
题目包含一张图片和一个Zip。
1.图片中能得到很多无用信息:
-
用010editor查看16进制得到TOGETYOURFLAG
-
百度随便找一张二维码,ps建几个图层裁剪放大,将缺损的二维码的三个角补齐并反色,扫描得到一句假flag
-
左下角放大,得到245个特殊彩色点,可以取它们的RGB值。(8个连续的像素点的RGB并非完全一样,有微小差异,很坑)
可以用ps的吸管取色一个一个查看RGB值,也可以处理二维码,只留下这245个像素,另存为一张图片用stegsolve打开,然后extract data,给RGB所有值打上勾,得到RGB值。
值得注意的是你可以得到反色和不反色的两组版本(虽然都没有用)
- 唯一有用的信息我是看别人的wp才知道的..用strings工具查看二维码图片的字符串
strings 二维码.jpg
,发现“USEBASE64”
2.ZIP是伪加密
我用了一晚尝试各种RGB循环异或,16进制10进制,各种数值都无法解压纯数字.zip,讽刺的是就在这天我做了一道ZIP伪加密的题,但我以为题目给了图片,一定要从图片中找解压密码。结果第二天我随便试了一下伪加密就成功了..
方法是用winhex打开纯数字.zip,搜索50 4B 01 02,找到一个09 00,将9改为0即可。
3.拨号音隐写,新知识get
关于音频隐写以前只做过摩尔斯码和直接查看频谱的..本题是拨号音隐写,其实看频谱图能发现开头和结尾有十几个断点,感觉可疑但是不知道拨号音这个知识点所以没做出来。
可以在au中打开此文件,放大对着刻度线一个个查看频率值,对照下表列出每上下两个频率对应的数字(符号),不过很费眼,而且易错。
用脚本做显然是更好的选择。我把中间的音频剪掉,只留下开头和结尾的频率点(不剪可能也可以),然后用github上的脚本跑一下就得到所有拨号音。
github的脚本地址:https://github.com/hfeeki/dtmf
用脚本的时候改一下里面打开文件的那行,改成自己的文件路径即可:
4.整合信息得到答案
现在我们得到了一行手机号187485618521,然后用base64加密,即得到flag:MTg3NDg1NjE4NTIx。