攻防世界misc刷题 新手模式第一页
Banmabanma
1.下载后解压出图片,很明显是一张条形码:
2.去在线网站扫描即可拿到flag https://online-barcode-reader.inliteresearch.com
适合作为桌面
1.将文件放入Stegsolve中,点击最底下的">"和"<"来切换颜色通道,可以发现一张二维码:
2.使用QR_Research打开,得到一串16进制数:
03F30D0A79CB05586300000000000000000100000040000000730D0000006400008400005A000064010053280200000063000000000300000016000000430000007378000000640100640200640300640400640500640600640700640300640800640900640A00640600640B00640A00640700640800640C00640C00640D00640E00640900640F006716007D00006410007D0100781E007C0000445D16007D02007C01007400007C0200830100377D0100715500577C010047486400005328110000004E6966000000696C00000069610000006967000000697B000000693300000069380000006935000000693700000069300000006932000000693400000069310000006965000000697D000000740000000028010000007403000000636872280300000074030000007374727404000000666C6167740100000069280000000028000000007304000000312E7079520300000001000000730A0000000001480106010D0114014E280100000052030000002800000000280000000028000000007304000000312E707974080000003C6D6F64756C653E010000007300000000
3.打开010editor:文件->新建->新建十六进制文件,将上述16进制数据复制,使用ctrl+shift+v粘贴,发现了1.py、1.pyt和flag字样:
4.猜测和python反编译有关,将文件保存成2.pyc放到桌面上,并使用网站进行反编译:https://tool.lu/pyc/
5.将文件保存到本地,并加上flag()执行,得到flag:
6.关于python后缀的一些总结:https://blog.csdn.net/yushuaigee/article/details/116355167
心仪的公司
方法一:
1.使用选择过滤器搜索(因为一般恶意请求都是POST请求,比如恶意文件等):
http.request.method == "POST"
2.发现了config.php
3.托到最后,右键追踪TCP流:
4.翻到最后,找到flag:
方法二:
1.直接将文件放到kali下面,使用strings命令和grep命令对flag进行筛选:
补充做题小tricks:
flag的各种形式:
1.base64:ZmxhZw==
2.16进制:66 6c 61 67
3.其它形式:f1ag,f14g,fl4g
pure_color
1.pure_color,很容易联想到颜色通道,将图片导入Stegsolve,点击下面的">"调整到flag位置:
2017_Dating_in_Singapore
1.根据题目描述,将给出的数字用"-"分割成十二行:
01081522291516170310172431
050607132027262728
0102030209162330
02091623020310090910172423
02010814222930
0605041118252627
0203040310172431
0102030108152229151617
04050604111825181920
0108152229303124171003
261912052028211407
04051213192625
2.可以猜测这十二行的数字正好对应十二个月的日期,可以画出图:
3.得到flag:HITB{CTFFUN}
simple_transfer
1.题目描述为:文件里有flag,找到它。
2.尝试搜索flag,没有找到有用的线索,猜测题目的描述可能是在暗示pcap包里隐藏了文件
3.将文件放到kali下,使用foremost进行分离:
foremost f9809647382a42e5bfb64d7d447b4099.pcap
4.给分离出的output文件夹777权限:
chmod -R output
5.点开output文件夹下的pdf文件,拿到flag
Training-Stegano-1
1.将文件拖入010editor,passwd的值即为flag
can_has_stdio?
1.将解压出的文件拖入010editor,一眼看出来编码是brainfuck:
2.放入在线网站解密,得到flag:flag{esolangs_for_fun_and_profit}
Erik-Baleog-and-Olaf
1.将文件拖入010editor,发现png头,用Stegsolve打开文件,更改颜色通道,发现了二维码:
2.将二维码截图保存,并再次拖入Stegsolve中,将颜色改为黑白,用微信扫码得到flag:flag{#justdiffit}
János-the-Ripper
1.将文件拖入010editor,发现了zip文件格式(PK头):
2.将文件放入kali中,使用Binwalk分离,得到了0.zip,发现需要解压密码:
3.将0.zip拖入010editor:
4.使用ARCHPR进行爆破,成功获得口令:
5.输入解压密码,得到flag
Test-flag-please-ignore
1.将文件拖入010editor,发现一串16进制数据:
2.将16进制数据去解密,拿到flag:flag{hello_world}
hong
1.解压后得到一个mp3文件,以为是音频隐写题,于是放入Audacity,但是发现无法打开:
2.于是放入kali下,尝试使用binwalk分离,意外发现隐藏了图片:
3.尝试使用foremost分离:
foremost hong.mp3
4.给output文件夹赋予777权限:
chmod -R 777 output
5.打开文件夹中的00000269.jpg,拿到flag:
misc_pic_again
1.将图片放入kali中,使用zsteg查看图片中是否有隐藏信息:
2.可以发现通道b1,rgb,lsb,xy 存在一个隐藏的ZIP文件
3.使用命令将zip文件提取出来:
4.解压out.zip,得到了一个名为1的文件:
5.尝试在文件1中寻找flag:
reverseMe
1.下载图片,发现是一张镜像图片:
2.将图片放入PS,点击图像->图像旋转->水平翻转画布,即可拿到flag:
hit-the-core
1.下载了一张后缀名为core的文件,上网搜了一下,是核心转储文件
2.将文件拖入010editor,发现是elf可执行文件:
3.将文件放入kali中,用strings命令查找flag:
4.发现加密规律:每出现三个小写字母就会出现一个大写字母,而大写字母里有CTF,猜测所有的大写字母就是flag,写脚本:
s = 'cvqAeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnjrKwgk83kgd43j85ePgb_e_rwqr7fvbmHjklo3tews_hmkogooyf0vbnk0ii87Drfgh_n kiwutfb0ghk9ro987k5tfb_hjiouo087ptfcv}'
flag = ''
i = 3
while i < len(s):
flag += s[i]
i += 5
print(flag)
拿到flag:
glance-50
1.打开发现是一张gif动图,放到Stegsolve里的Analyse->Frame Browser里分帧,无果
2.将图片放入kali中,使用convert命令进行图片的分帧和拼接:
命令说明:
+adjoin告诉convert命令将输入的文件拆分成多个单独的图像;piece-%03d,类似于C语言的格式化输出,使用三位数字作为输出的一部分;+append告诉convert的命令将图像文件按照水平放行拼接在一起,并将结果保存为output.gif文件
3.打开output.gif,拿到flag:
normal_png
1.用很多工具打开后都没有什么发现,于是将图片放入010editor中,猜测是出题者修改了宽或高
2.使用脚本来得出正确的宽或高:
(1)修复高度的脚本:
import binascii
import struct
misc = open("normal.png","rb").read()
for i in range(4000):
data = misc[12:20] + struct.pack('>i',i) + misc[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
if crc32 == 0x36B4F5FD:
print(struct.pack('>i',i))
print(hex(i))
发现得到了原来的高度:
(2)修复宽度的脚本:
import binascii
import struct
misc = open("./normal.png","rb").read()
for i in range(4000):
data = misc[12:16] + struct.pack('>i',i) + misc[20:29]
crc32 = binascii.crc32(data) & 0xffffffff
if crc32 == 0x36B4F5FD:
print(struct.pack('>i',i))
print(hex(i))
3.修改010editor中相应的位置,保存再打开文件,即可得到flag:
Aesop_secret
1.用PS打开图片,点击菜单栏的选择->所有图层,发现了四个字母:ISCC
2.用010editor打开图片,在文件末尾发现了一串加密字符串:
3.多次尝试后发现是AES加密,密钥正是ISCC,两次解密得到flag:flag{DugUpADiamondADeepDarkMine}
a_good_idea
1.打开两张图片,发现两张图片几乎一样,猜测考点为图片容差隐写
2.用Beyond Compare打开两张图片进行比较,得到一张二维码:
3.将二维码截图保存,使用QR_Research打开,即可拿到flag:
Ditf
1.用010editor打开没有什么发现
2.尝试将图片放入kali中,使用binwalk分离,意外分离出zip文件:
3.给分离出的文件夹赋予777权限:
4.打开压缩包,发现还是需要解压密码:
5.猜测密码隐藏在图片里,联想到是作者修改了图片宽度或高度:
import binascii
import struct
misc = open("liuliang.png","rb").read()
for i in range(4000):
data = misc[12:20] + struct.pack('>i',i) + misc[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
if crc32 == 0x38165A34:
print(struct.pack('>i',i))
print(hex(i))
得到需要修改的高度:
6.在010editor中修改完高度,再次打开图片,得到了解压密码:
7.打开流量包,使用选择过滤器进行过滤,找到可疑的图片:
http.request.method == "GET" and http.request.uri matches "/*.png"
8.右键追踪http流,发现了一串可疑的base64编码字符串:
9.解密得到flag:flag{Oz_4nd_Hir0_lov3_For3ver}
miss_01
1.使用binwalk分离压缩包:
2.给分离出的文件夹赋予777权限:
3.打开omisc.docx,发现是rabbit加密,但是目前没有找到密钥:
4.点击选项->隐藏文字,打开隐藏文字,多出了一段奇怪的字母和一段网址:
5.查阅资料发现是希尔加密,可以在如下网址解密:希尔密码加密/解密 - 一个工具箱 - 好用的在线工具都在这里! (atoolbox.net):
6.猜测love and peaceee就是密钥,去解密rabbit密文:Rabbit加密-Rabbit解密-在线Rabbit加密解密工具 (woodmanzhang.com)
7.将得到的base32字符串继续解密:
8.将得到的unicode编码继续解密:
9.将得到的新约佛论禅进行解密:
10.猜测这就是压缩包的解压密码,但是打开后发现文件头损坏,无法正常解压,因此先使用winrar修复文件头
11.修复完后使用解压密码解压出一段音频,将波形修改为频谱图即可:
12.如图: