参考:https://blog.csdn.net/zz_Caleb/article/details/89287031
files
0x01 this_is_flag
Most flags are in the form flag{xxx}, for example:flag{th1s_!s_a_d4m0_4la9}
flag{th1s_!s_a_d4m0_4la9}
0x02 ext3
今天是菜狗的生日,他收到了一个linux系统光盘
将linux系统光盘放在linux下,在linux光盘目录下使用strings linux|grep flag
,查找与flag相关的文件;root模式下使用mount linux /mnt
命令将linux光盘挂载在mnt目录下,切换到mnt目录,使用cat O7avZhikgKgbF/flag.txt
命令即可对flag内容进行读取,发现是一个base64编码,解密后得到flag.
flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}
0x03 give_you_flag
菜狗找到了文件中的彩蛋很开心,给菜猫发了个表情包
一个.gif图片,用stegsolve的查看帧的功能模块查看,发现一个缺少三个定位部分的二维码,将其补全,扫一扫即可。
flag{e7d478cf6b915f50ab1277f78502a2c5}
https://cli.im/news/help/10601
https://blog.csdn.net/hk_5788/article/details/50839790
https://zhuanlan.zhihu.com/p/21463650
https://www.jianshu.com/p/8208aad537bb
0x04 pdf
菜猫给了菜狗一张图,说图下面什么都没有
将文件打开,删除掉最外面的图片,flag便显示出来了
flag{security_through_obscurity}
0x05 坚持60s
菜狗发现最近菜猫不爱理他,反而迷上了菜鸡
下载发现是一个.jar的游戏,使用java反编译工具,查看源码,得到flag.
flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}
0x06 如来十三掌
菜狗为了打败菜猫,学了一套如来十三掌。
在“与佛论禅”解密,得到一段疑似base64的编码,如来十三掌,rot13一下,再base64解密即可得到flag.
flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}
0x07 gif
菜狗截获了一张菜鸡发给菜猫的动态图,却发现另有玄机
打开压缩包发现许多张黑白颜色的图片,将黑白图片分别记为1,0,得到01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101,转化为字符串形式即可。
# gif 二进制转字符串
import re
a = '01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101'
b = re.findall(r'.{8}',a)
flag = ''
for i in b:
flag += chr(int(i,2))
print(flag)
flag{FuN_giF}
0x08 SimpleRAR
菜狗最近学会了拼图,这是他刚拼好的,可是却搞错了一块(ps:双图层)
将压缩包直接解压,发现压缩包损坏,但得到了一个flag.txt,根据提示flag应该在剩余的文件中,将压缩包放在winhex下,根据flag.txt的内容,补齐图片格式再次解压得到一个空白图片,放在winhex下,发现是一个.gif图片,使用stegsolve帧功能模块,得到两张不同的帧图片,调节颜色,得到两张残缺的二维码图片,合并补齐后,扫一扫即可。
flag{yanji4n_bu_we1shi}
0x09 stegano
菜狗收到了图后很开心,玩起了pdf(flag格式为大写)
在google上安装插件PDF Viewer,控制台输入document.documentElement.textContent
,得到一串AB编码而成的字符串,将A变为 . ,B变为 - ,摩斯解密为CONGRATULATIONSnullFLAGnull1NV151BL3M3554G3,即flag为1NV151BL3M3554G3
flag{1NV151BL3M3554G3}
0x10 掀桌子
菜狗截获了一份报文如下c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,生气地掀翻了桌子(╯°□°)╯︵ ┻━┻
通过观察,试着将16进制字符转为字符串,发现不能直接转化,试着将ascii码值减去128再转化,得到flag.
# 掀桌子脚本,十六进制转字符串
import re
a = 'c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2'
b = re.findall(r'.{2}',a)
flag = ''
for i in b:
flag += chr(int(int(i,16)-128))
print(flag)
flag{hjzcydjzbjdcjkzkcugisdchjyjsbdfr}
0x11 功夫再高也怕菜刀
菜狗决定用菜刀和菜鸡决一死战
foremost分离文件,得到一个加密的压缩包,点进去查看发现一个flag.txt文件,wireshark下查找flag.txt字符串,追踪TCP流,最终在第1150个包发现一段图片的16进制编码,将其用winhex另存为一个图片,得到压缩包的密码,解压得到flag.
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}
0x12 base64stego
菜狗经过几天的学习,终于发现了如来十三掌最后一步的精髓
无法直接解压压缩包,将其放在winhex下,查找rar标志位,发现是一个RAR伪加密,将第二个504B后的0900改为0000,解压得到一个内容全是base64编码的文件,发现是base64文件隐写,python2环境下直接利用脚本即可解出flag.
# base64文件隐写脚本
#!/user/bin/env python
# -*-coding:utf-8 -*-
def get_base64_diff_value(s1, s2):
base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
res = 0
for i in xrange(len(s1)):
if s1[i] != s2[i]:
return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))
return res
def solve_stego():
with open('E://stego.txt', 'rb') as f:
file_lines = f.readlines()
bin_str = ''
for line in file_lines:
steg_line = line.replace('\n', '')
norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '')
diff = get_base64_diff_value(steg_line, norm_line)
pads_num = steg_line.count('=')
if diff:
bin_str += bin(diff)[2:].zfill(pads_num * 2)
else:
bin_str += '0' * pads_num * 2
res_str = ''
for i in xrange(0, len(bin_str), 8):
res_str += chr(int(bin_str[i:i+8], 2))
print res_str
solve_stego()
flag{Base_sixty_four_point_five}