攻防世界进阶专区——MISC(1~20)
easycap
附件是个.pcap
文件,pcap文件是常用的数据报存储格式,使用wireshark打开看一下,追踪TCP流:
随便哪个都行,最后可以追踪到flag:
reverseMe
附件是一张.jpg
的照片:
绝了,真逆向!!!
得到flag:
What-is-this
附件是一个压缩文件,打开看一下:
打开stegsolve,尝试使用==Image Combiner==功能合并两张图片:
得到flag!
something_in_image
下载附件:
打开看一下:
找到了flag,==Flag{yc4pl0fvjs2k1t7T}==尝试提交一下,结果正确。
wireshark-1
下载附件,将过滤器筛选改成HTTP:
查找POST,追踪TCP流:
找到了密码,可知密码就是flag:==ffb7567a1d4f4abdffdb54e022f8facd&captcha=BYUG==
加上格式flag就是:==flag{ffb7567a1d4f4abdffdb54e022f8facd&captcha=BYUG}==
pure_color
下载附件,是一个.png
文件,但是打开以后发现啥都没有:(不要质疑下面有一片空白是题目给的png)
使用stegsolve打开看一下:
好家伙,flag就是这个。。。。
Aesop_secret
打开附件是一个.gif
文件:
打开PS,让他们同时显现:
尝试输入ISCC,但是flag不是这个,再看一遍题目,莫非是AES加密?binwalk看一下有没有隐藏信息:
这么看来只能是AES了,但是没找到字符串,用记事本打开看一下,一堆乱码,但是翻了一下在最后看到了我们要的字符串:
U2FsdGVkX19QwGkcgD0fTjZxgijRzQOGbCWALh4sRDec2w6xsY/ux53Vuj/AMZBDJ87qyZL5kAf1fmAH4Oe13Iu435bfRBuZgHpnRjTBn5+xsDHONiR3t0+Oa8yG/tOKJMNUauedvMyN4v4QKiFunw==
使用在线AES加解密网站进行解密:(有的网站要搞一大堆参数,不太会配置)
尝试提交这个字符串,但是不正确,又不是base64解密。。。。。
看到解密以后的尾部有两个等号,和上面的一摸一样,萌生了再解密一次的念头:
功夫不负有心人,成功了!
a_good_idea
下载.rar
附件,解压缩:
是一个图片,丢到stegsolve看一下,但是没找到什么有价值的线索,丢到binwalk看一下:
突然有一种炸出一堆老鼠的感觉。。。。分离一下:(扫描器那个是历史残留,不是分离出来的)
进一步查看一下:
似乎发现了啥秘密,利用stegsolve将两张照片合并:
调整一下曝光度:
是个二维码,扫一下:
得到flag!!!
2017_Dating_in_Singapore
打开附件,是一个PDF文件:
有点懵逼,突然想到了题目给了一串数字:
先查看一下数字数量:
都是二的倍数,两两分割开来和日历一对应就能知道flag了!!!我没做了,直接看师傅们的wp,这真是个大工程啊!!!
simple_transfer
打开附件,又是一个数据流。。。
直接打开搜索flag,但是毫无头绪,丢到kali分离一下试试:
分离出来一个pdf文件,打开却会出错,给我整不会了,查看师傅们的wp,使用foremost分离试试,得到flag:
Training-Stegano-1
打开附件是一个.bmp
文件:
丢到stegsolve里看看,人都傻了,图片像素太低肉眼很难分辨,再丢到binwalk看一下:
没啥东西。。。。
再使用记事本打开看一下:
BMf 6 ( 0 Look what the hex-edit revealed: passwd:steganoI
尝试输入steganoI,正确!!!!
can_has_stdio?
附件是一个.zip
文件,解压缩一下,得到一个文件:
查看一下基础信息:
打开看一下:
把我整不会了,真的是知识盲区,赶紧看了一下别的师傅的wp,说这是BrainFuck语言。。。。
行吧,在线解密一下:
Erik-Baleog-and-Olaf
附件解压以后是一个stego 100
的文件,文本形式打开看一下:
一堆的乱码,但是在里面找到了个图片,打开看一下,但是打不开,准备丢到binwalk看一下,打开kali的时候识别出这是一个图片:
接着binwalk看一下:
意料之中,知道这是.png
就好办了,修改后缀名丢到stegsolve里看一下:
调通道的时候看到一个二维码,多找几个通道丢到ps里看一下能不能扫出来,在我的不断尝试下最终宣告失败,我看了下wp,思路没错,但是PS玩的不精,好家伙,找到另一种方法,找到清晰的二维码,再用stegslove把他调至黑白色。
图片是随机产生的,多试两次就能找到想要的,有点事情要做,这个办法我也没折腾出来,不知道咋办了,关于这个的wp倒是有清晰的图,但是也扫不出来。。。。

不管了,就这样吧,希望实际赛题不会出的这么丧心病狂,才两星的题折腾一个多小时。。。。
### 大佬解法:
#### 这题居然有大佬用python解决。。。
```python
from PIL import Image
exp = Image.open("exp.png") # 从winhex中最后一行下载的图片
cipher = Image.open("cipher.png") # 题目给的图片
new = Image.new("RGBA", size=exp.size)
for i in range(640):
for j in range(480):
y_p = exp.getpixel((i, j))
c_p = cipher.getpixel((i, j))
if y_p == c_p:
pass
else:
new.putpixel((i,j), (255,255,255))
new.save("result.png")
```
我最后才发现,上面那串我输入用不了的连接居然可以有这个用处,不过我输入那串链接显示无法访问,可能是环境问题吧,。
同理还有如下两种解法:
- 下载两个链接,利用BCompare比较。
- 利用stegsolve
- 对两图的 blue plane 1 做 XOR 生成 blue1_XOR.png
- 对两图的 blue plane 2 做 XOR 生成 blue2_XOR.png
- 对 blue1_XOR.png 和 blue2_XOR.png 做 OR
- 扫描二维码
图片我下载不了,这里就不做复现了。。。
## János-the-Ripper
打开附件,解压缩,以文本形式打开:
发现存在flag字符串,丢到kali里:
成了一个压缩包。。。。其实看到文件PK开头的时候就该想到的。。。。
爆破吧,使用ARCHPR进行爆破,[Blus.King](https://blog.csdn.net/q851579181q)师傅给出了[ARCHPR](https://pan.baidu.com/s/1E65i3HkJ1zwBpeogFx67-A),解压密码是hvu7
爆破出来密码是fish,解压得到flag:==flag{ev3n::y0u::bru7us?!}==
## Hear-with-your-Eyes
附件是一个.gz
压缩包,解压一下:
看上去是一个音频文件,打开一下,是一段鸟叫声,结合题目猜测可能要看声音的波形:
使用Audacity打开这段音频,切换到频谱图:
得到flag:==e5353bb7b57578bd4da1c898a8e2d767==
## Test-flag-please-ignore
打开附件,是一个文件,以文本形式打开看到如下字符串:
```
666c61677b68656c6c6f5f776f726c647d
```
最高是f猜测是16进制字符串,转换一下:
就是这么的朴实无华。。。。。
## hit-the-core
打开附件,是一个以.core
为后缀名的文件,搜索一下这个后缀名:
> Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试。当程序崩溃时便会产生core文件,其实准确的应该说是core dump 文件,默认生成位置与可执行程序位于同一目录下,文件名为core.***,其中\*\*\*是某一数字。
不知道什么鬼了,丢到kali里查看下字符串,看看有什么猫腻:
下面一串长长的字符串吸引了我的注意,看样子有点像flag的格式,尝试提交,但显示错误。
继续观察,发现从A开始每隔4个字符就有一个大写,将这些大写字母拼接在一起就得到了flag,这个过程可以手动或者编写python脚本:
得到flag :==ALEXCTF{K33P_7H3_g00D_w0rk_up}==
参考脚本如下:
```
num='cvqAeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnjrKwgk83kgd43j85ePgb_e_rwqr7fvbmHjklo3tews_hmkogooyf0vbnk0ii87Drfgh_n kiwutfb0ghk9ro987k5tfb_hjiouo087ptfcv}'
flag = ''
for i in range(3,len(num),5):
flag += num[i]
print(flag)
```
## 快乐游戏题
打开附件,是个压缩包,解压缩一下:
打开看一下:
### 解法一:玩游戏
介于对攻防世界的信任,直接运行:
是一个游戏,玩赢了就能得到flag:
大体规则就是不让猫跑到边界去,多玩几次试试:
真不错,游戏很nice。
flag就是:==UNCTF{c783910550de39816d1de0f103b0ae32}==
### 解法二:逆向解决
可以参考https://www.52pojie.cn/thread-1399227-1-1.html
## glance-50
打开附件,是一个gif图。
### 解法一:零代码,零bash
可以看到不断有东西闪过,将gif丢到PS里分解一下,点击第一个图层,按住shift
再点击最后一个图层进行全选,点击图层
,导出
导出到一个文件夹中:
再使用金舟截图软件
将所有图层合并:
得到flag:
flag为:==TWCTF{Bliss by Charles O'Rear}==
### 解法二:kali convert montage
先下载一下:
```shell
kali 中 convert 安装:
apt-get update
apt-get install imagemagick
```
分解一下:
合并一下:(上面那个flag.png是之前搞错了弄出来的,后来删掉了)
打开看一下:
## Ditf
附件是一个.png文件,一打开发现是老婆的照片:
先丢到kali里binwalk看一下有没有隐藏文件:
分离出来:
看下压缩包里有些啥:
是一个流量数据包,提取出来丢到wireshark里看一下:
解压需要密码。。。。
> **知识补充**
> PNG文件图像头部不止是文件类型的标识;还包含了长度、高度以及校验值
>
> 通常情况下,一个图像的产生,就会被赋予各种文件头部信息;一般情况下图像刚产生的时候,长宽高等信息会被校验,产生一个值X1
>
> 如果这个图象被修改了,有可能产生图像无法打开或者显示不全
> 校验值被修改为X2;使用TWeakPNG去校验的时候,通过长宽高算出来的校验值是X1跟现在的X2不一致,产生报错。
>
> 高度值被修改;通过错误的长宽高,算出错误的校验值X3(**Winhex 第二行前四个字节为宽度,4-7字节为高度,最后三个字节以及第三行第一字节为CRC校验值**)
>
> 如果计算出来的值报错,那一定是被篡改过
>
> 可以先用TWeakPNG计算CRC值,先尝试修改图片CRC值,查看图片,如果没有出现flag,再尝试改变高度值
修改一下高度:
保存重新打开:
密码找到了,解压丢到wireshark里去,搜索flag ,ctf,png等字符串,找到了一个kiss.png:
追踪一下HTTP流,发现了一串有意思的字符串:
一看就是Base64加密,解密一下就可以得到flag了:==flag{Oz_4nd_Hir0_lov3_For3ver}==