将图片下载到本地,打开(原图是直接上传不了的,即使上传了也看不了的 )。
放到 Bless 里分析,发现图片末尾隐写了一段 Unicode 编码。
用解码工具对其解码,得到 FLAG 为
key{you are right}
首先将 rar 文件下载到本地,解压得到 2.png,在 Linux 下打不开,而在 Windows 下却可以正常浏览。
提示信息给的很足:文件头数据块(IHDR)损坏了。
用 pngcheck 检查一下,得到以下信息(在文章开头的错误回显已经给出)
z@ubuntu:~/Downloads$ pngcheck 2.png
用 file
命令查看文件格式(后缀名不一定正确),确实是 PNG 格式文件。
z@ubuntu:~/Downloads$ file 2.png
2.png: PNG image data, 500 x 420, 8-bit/color RGBA, non-interlaced
z@ubuntu:~/Downloads$
在 Windows 下用 WInHex 查看二进制编码,在十六进制表示中,上图每两个数字表示一个字节。
需要通过在十六进制编辑器中修改宽和高的值,达到修复 CRC Error 的效果。
我们规定 crc32key 为该 PNG 文件的 CRC 验证码,它是由从 IDCH 到 IHDR 的十七位字节进行 CRC 计算得到的。不妨写一个 Python 脚本,进行上述计算得到的结果记为 crc32result,如果
crc32result == crc32key
则表明此时的长宽比符合题意,图片修复完毕。具体思路见:https://www.jianshu.com/p/0b5d14657d2e (用它的例子并没有成功)。CRC 函数(crc32)导入 zlib 库可以得到。
将 zip 文件解压后是一个后缀名 pcap 的流量包,放到 WireShark 中进一步分析。
右键,依次选择 Follow
-> TCP Stream
,发现 FLAG。
解压 zip 文件,得到一个看上去是 doc 文件的东西
用 binwalk 检查发现其实是一个 zip 文件,遂以 foremost 进行拆分
z@ubuntu:~/Downloads$ binwalk '/home/z/Downloads/ÑÛ¼û·Çʵ.docx'
z@ubuntu:~/Downloads$ foremost '/home/z/Downloads/ÑÛ¼û·Çʵ.docx'
又得到一个 zip 文件 ,进行解压,在 word 文件夹的 document.xml 中找到 FLAG
这次给出的是一个表情包
使用
binwalk
发现该图片实际上是一个图种(内涵图),包含了一段 zip 文件的信息。
zip 文件的密码就是表情包图片属性中的对应的照相机型号(完全不知道这有什么意义),将十六进制解码后的字符串作为秘钥,获得 FLAG。
用 binwalk 确认此图为图种,遂 foremost 分离之。
查看路由器配置文件,需要用到 Windows 下的RouterPassViewer,
根据提示在配置文件中查找用户名即可。
这是一个图种,老司机都懂。直接用 foremost 让它质壁分离。
改后缀的老套路,这其实是一个伪装为 rar 的 zip 文件。还原后缀名并解压之。
根据提示,密码是871。
根据形式猜测是 base64 编码(花括号内部分),解码后得到 FLAG
f1@g{y0u Are a h@cker!}
cat
命令也就出来了。2. 对于 zip 密码,严谨的做法是自己写个字典生成器生成字典(如果没有的话),然后用 fcrackzip 结合密码字典进行破解。
# 一个超简陋的黑客字典生成器
import string
s = string.digits
f = open('evil.txt', 'w')
for i in s:
for j in s:
for k in s:
f.write(i+j+k+'\n')
f.close()
用 file
命令发现这是一个伪装成 exe 的 txt 文件。
cat KEY.exe
很明显是 base64 编码,解码后发现是一张QRcode(二维码),扫得 FLAG。
KEY{dca57f966e4e4e31fd5b15417da63269}
使用图片通道查看器 Stegsolve,Analyse -> Frame Browser。
最后扫出来
SYC{F1aSh_so_f4sT}
听说游戏通关就有 FLAG。。
玩到第二关就不想玩了,看到每一关结束都会在 save1 文件写一条记录。
SYC{6E23F259D98DF153}
咕咕咕,,,
用 file
命令发现它实际上是jpeg文件,存储了exif信息。
我们猜测这是一个栅栏密码(类似于藏头诗,具体见百度百科),用下面的代码进行破解。
# 3个字符一组,一共24个字符,总共8组
str = "fg2ivyo}l{2s3_o@aw__rcl@"
flag = ""
for i in range(0, int(len(str)/3), 1):
flag += str[i]
flag += str[i + 8]
flag += str[i + 16]
print(flag)
得到
flag{w22_is_v3ry_cool}@@
上面的代码假定每 3 个分为一组,如果严谨写,应该再在外面包裹一个外循环(这里既然已经得到 FLAG,就不写了)。
# 3个字符一组,一共24个字符,总共8组
str = "fg2ivyo}l{2s3_o@aw__rcl@"
flag = ""
for j in range(0, int(len(str)/i), 1):
flag += str[j]
flag += str[j + 8]
flag += str[j + 16]
print(flag)
这是我用严谨方法得到的结果,经过分析选出符合逻辑的那个即为 FlAG
图省事的话,可以访问:https://www.qqxiuzi.cn/bianma/zhalanmima.php ,
在线破解栅栏密码的网站。
本题考查 Linux 基础,做不好的说不过去了。
key{feb81d3834e2423c9903f4755464060b}
大白的图片,在 Windows 下可以打开,而 在 Linux 下根本打不开。
应该是 PNG 图片的文件头数据块出了问题,丢进 Bless一探究竟。
图像的高度信息被篡改,将代表高度的 00 00 01 00
改为 00 00 02 A7
放到 Luyten 反编译,在某个 Frame 类中找到 FLAG(base64 编码)
flag{DajiDali_JinwanChiji}
已知信息有两条,即 cap 抓包和密码的前 7 位数。先用 crunch 生成 11 位密码。
crunch 11 11 -t 1391040%%%% -o pass.txt
使用 Aircrack-ng 进行无线密码破解。
aircrack-ng -a2 -w pass.txt wifi.cap
flag{13910407686}
解压出来是一个 Linux 系统文件,直接用 grep
命令进行搜索即可。