攻防世界-Misc-新手练习区wp
001 this_is_flag
难度:2.0
题目描述:Most flags are in the form flag{xxx}, for example:flag
内心:这是啥???想了想既然是新手区第一题那就没什么复杂的东西,交上里面的flag果然过了
flag
002 pdf
难度:3.0
题目描述:菜猫给了菜狗一张图,说图下面什么都没有
题目附件为一个pdf,内容如下
根据题目提示“图下面什么都没有”,可以猜测flag隐藏在图片下面
鼠标在图片上胡乱划拉划拉,发现在中间部分的时候鼠标变成了I的形状,说明下方有字
双击全选复制粘贴,得到flag
flag
003 如来十三掌
难度:3.0
题目描述:菜狗为了打败菜猫,学了一套如来十三掌。
拿到word,扔到与佛论禅里解密一下
看着像是base64,扔进去解密一下发现是乱码emmmmmm
回头看题,如来十三掌可以猜测是通过了rot13加密,扔进去解密一下得到
扔回base64解密,即可得到flag
flag
004 give_you_flag
难度:4.0
题目描述:菜狗找到了文件中的彩蛋很开心,给菜猫发了个表情包
附件为一个gif,使用stegsolve逐帧看,在第50帧有二维码出现
看起来缺了点什么,补全三个小方块,得到完整的二维码
扫描即可得到flag
flag
005 gif
难度:4.0
题目描述:菜狗截获了一张菜鸡发给菜猫的动态图,却发现另有玄机
打开文件,发现全是黑白图片,考虑到有可能是二进制编码或摩斯编码,但如果是摩斯的话题目一般会给出分隔符,这里看不出来可以明显作为分隔符的东西,所以考虑二进制编码的情况
把白色的当做0,黑色的当做1,解密得到flag
flag
006 掀桌子
难度:4.0
题目描述:菜狗截获了一份报文如下c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,生气地掀翻了桌子(╯°□°)╯︵ ┻━┻
看题目给的字符串,像是16进制,两个一组转化为十进制(本地pycharm不会用...用的洛谷在线IDE,感谢kkk)
最大的250,最小的120,而ascii从32开始,最大为128,猜想减去128,刚好最小的到32
得到flag
flag
007 stegano
难度:5.0
菜狗收到了图后很开心,玩起了pdf 提交格式为flag{xxx},解密字符需小写
打开后全选复制到记事本里,发现一段AB字符
老规矩猜测是摩斯电吗,A用.替换,B用-替换解密得到
替换成大小写得到flag
flag
008 坚持60s
难度:4.0
打开后是个小游戏,玩了几局最高只能坚持40多s,我太菜了
使用winhex打开,发现就可以直接看到flag,对flag内容Base64解密一下就可以
然后不久后同学也做到了这道题,向我秀了一波她的骚操作
flag
009 ext3
难度:5.0
先上winhex,搜索一下字符串,可以看到有个flag.txt
拿到kali里分解一下,然后搜索找到flag.txt
打开后是一串base64,解码得到flag
flag
010 SimpleRAR
先解压,看到里面有个flag.txt,但是打开后看到flag is not here
丢进winhex瞧瞧,可以发现有个secret.png
往上看看,问题很明显,secret.png 头部标识错误,修改 7A 为 74,如下图,修改后便可以解压得到 secret.png
再看一眼secret.png可以发现其实是一个gif文件,用stegsolve逐帧查看
把两个拼起来然后补上定位符,扫一扫就可以拿到flag
flag
011 base64stego
难度:5.0
首先一点开,需要密码,猜测是个zip伪加密,扔进winhex一看,可以看到09 00,果然
修改09 00 为00 00 ,保存后便可以顺利解压拿到stego.txt
正如题目所言,是一个base64stego,放进脚本里跑一跑,就可以拿到flag了,脚本如下:
# -*- coding: cp936 -*-
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('stego.txt', 'rb') as f:
bin_str = ''
for line in f.readlines():
stegb64 = ''.join(line.split())
rowb64 = ''.join(stegb64.decode('base64').encode('base64').split())
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 xrange(0, len(bin_str), 8)])
运行结果如下:
flag
012 功夫再高也怕菜刀
难度:6.0
附件是个流量包,先搜索一下flag.,发现有不少东西,扔进kali里分离一下
发现一个flag.txt,但是打开需要密码
接下来再在wireshark分析一下,在1150处追踪tcp流,可以看到这么一大坨
从FF D8 FF开始复制到FF D9,保存为jpg后可以得到一张图片
这就是txt的密码,输进去便可以拿到flag