攻防世界杂项(misc)–新手练习区(详解)
第一题:this_is_flag
题目描述:Most flags are in the form flag{xxx}, for example:flag{th1s_!s_a_d4m0_4la9}
根据题目描述确定flag为:flag{th1s_!s_a_d4m0_4la9}
第二题:pdf
题目描述:菜猫给了菜狗一张图,说图下面什么都没有
得到的文件为一个pdf图片:
根据题目描述:图片下面什么都没有 ,那么图片猜测flag就这图片下面,于是用ctrl+a全选粘到文本文档中,果然flag出现了:flag{security_through_obscurity}
第三题:如来十三掌
题目描述:菜狗为了打败菜猫,学了一套如来十三掌。
打开文件:
夜哆悉諳多苦奢陀奢諦冥神哆盧穆皤三侄三即諸諳即冥迦冥隸數顛耶迦奢若吉怯陀諳怖奢智侄諸若奢數菩奢集遠俱老竟寫明奢若梵等盧皤豆蒙密離怯婆皤礙他哆提哆多缽以南哆心曰姪罰蒙呐神。舍切真怯勝呐得俱沙罰娑是怯遠得呐數罰輸哆遠薩得槃漫夢盧皤亦醯呐娑皤瑟輸諳尼摩罰薩冥大倒參夢侄阿心罰等奢大度地冥殿皤沙蘇輸奢恐豆侄得罰提哆伽諳沙楞缽三死怯摩大蘇者數一遮
根据题目描述:菜狗为了打败菜猫,学了一套如来十三掌。 然后依照文件中的内容,那么猜测是与佛论禅密码
MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9
得到后感觉还不是flag,首先想到base64解密,但是不对,后来想到如来十三掌,那么猜测可能是rot13加密
ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9
然后我进行base64解密得到flag: flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}
第四题:give_you_flag
题目描述:菜狗找到了文件中的彩蛋很开心,给菜猫发了个表情包
打开文件是一个gif动态图:
于是我用stegsolve工具进行动态图片分离
工具链接:stegsolve工具
1.首先我点击file
2.点击下好的附件,打开
3.点击分析
4.翻到第五十张的时候出现二维码,点击保存
看到是一个缺少定位符的二维码,在网上找一个定位点图,用3d画图修改图片即可。得到以下图片
使用CQR二维码扫描工具得到flag值: flag{e7d478cf6b915f50ab1277f78502a2c5}
工具链接:CQR二维码扫描工具
第五题:stegano
题目描述:菜狗收到了图后很开心,玩起了pdf 提交格式为flag{xxx},解密字符需小写
打开是一个:pdf文件,并提示flag不在这里
然后我ctrl+a全选文章,复制到文本文档中,发现一串AB。
BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB
根据密文猜测是摩斯密码,这里使用到B站一位UP主(风二西)的工具(CTF编码转化工具):
根据密文想到A替换成摩斯的. B替换成摩斯-
得到的flag: flag{1nv151bl3m3554g3}
第六题:坚持60s
题目描述:菜狗发现最近菜猫不爱理他,反而迷上了菜鸡
打开文件是一个后缀为:jar
方法一:坚持60s即可得到flag
方法二:使用逆向简单工具jd-gui 工具链接
flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}
通过尝试上传flag后发现不对,那么一看加密方式为base64进行解密,在线加解密网站:https://www.qqxiuzi.cn/bianma/base64.htm
最后flag值为:flag{DajiDali_JinwanChiji}
第七题:gif
题目描述:菜狗截获了一张菜鸡发给菜猫的动态图,却发现另有玄机
解压后是一组图片:
打开文件出现多个黑白,让人联想到二进制,白色图片代表0,黑色图片代表1。01100110前八位二进制换算后为 f 证明思路正确。
方法一:手动将图片转化为01二进制,转化为01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101
方法二:编写python脚本:
from PIL import Image
result=""
for num,i in enumerate(range(104)):
img=Image.open(f"G:/Desktop/dbbc971bf4da461fb8939ed8fc9c4c9d/gif/{i}.jpg")
im=img.convert("RGB")
r,g,b=im.getpixel((1,1))
if r!=255:
result+="1"
else:
result+="0"
for i in range(0,len(result),8):
byte=result[i:i+8]
print(chr(int(byte,2)),end="")
最后flag是:flag{FuN_giF}
第八题:掀桌子
题目描述:菜狗截获了一份报文如下c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,生气地掀翻了桌子(╯°□°)╯︵ ┻━┻
看题给字符串比较像十六进制,俩个一组,转化为十进制,减去128,再转字符串得到flag,有一点投机取巧。
str="c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
strlen=len(str)
print(strlen)
for i in range(0,118,2):
byte=str[i:i+2]
s=int(byte,16)-128
print(chr(s),end="")
最后flag为: flag{hjzcydjzbjdcjkzkcugisdchjyjsbdfr}
第九题:ext3
题目描述:今天是菜狗的生日,他收到了一个linux系统光盘
得到的文件是:
方法一:首先放到010editor查看,搜素字符串flag,发现了如图的
然后我用7z工具打开,发现了一些文件夹,其中就有我们010editor看到的文件夹,点击查看,flag
ZmxhZ3tzYWpiY2lienNrampjbmJoc2J2Y2pianN6Y3N6Ymt6an0=
看到这个就是用base64加密的:base64在线加解密网站
最后得到的flag: flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}
方法二:用kali中binwalk -e 分离出文件,即可得到flag
方法三:挂载到kali下
1.首先创建一个文件夹
命令: mkdir aa
2.挂载到刚刚创建的文件夹下面
命令: mount 1 aa
3.进入到aa 文件夹下 cd aa ,并查看有哪些文件 ls
4.查看文件中是否存在flag文件,用 find -name flag*命令
5.使用cat 查看里面的内容
ZmxhZ3tzYWpiY2lienNrampjbmJoc2J2Y2pianN6Y3N6Ymt6an0=
使用base64解密即可得到flag flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}
第十题:SimpleRAR
题目描述:菜狗最近学会了拼图,这是他刚拼好的,可是却搞错了一块(ps:双图层)
文件是一个压缩包
1.首先我解压,提示压缩包损坏,我在用7z打开,里面有一个flag.txt文件,但是打开说flag 不在这里
2.再用010editor打开,看见出一些端倪 010editor工具链接
打开并提示:压缩包被修改的。
rar 每个块的开头基本知识: (看到人家的writeup)
010editor 查看压缩包,rar 文件块的开头是 A8 3C 74 我们需要文件块而不是子块,于是更改 A8 3C 7A 为 A8 3C 74
解压出来:
打开图片有两张白色的图片,首先我看了一下文件的属性,发现没有任何东西,我先分别保存两张图片,于是我分别放到stegsolve中,查看 。 stegsolve 工具链接
通过第一张图片得到半张二维码
同样进行第二张图片分析
于是3D将两张图片组合拼接,并把定位点拼接上,得到图片
使用CQR二维码扫描工具得到flag值:flag{yanji4n_bu_we1shi} CQR二维码工具链接
第十一题:base64stego
题目描述:菜狗经过几天的学习,终于发现了如来十三掌最后一步的精髓
得到的文件是一个压缩包:我尝试解压,发现需要密码,于是我用7z打开,发现里面有一个文件,且里面的内容能够打开,说明该压缩包是一个伪加密。 7z工具链接
解决伪加密两种方法:
第一种直接用7z工具打开
第二种:用010editor打开,修改其密码位
zip的知识补充:
解压出来。
解压后发现是一堆base64加密的字符串,看题目来源是olympicCTF,这是俄罗斯2014 年有道 misc 题是关于 Base64的隐写题,那我们直接写解码,这里的思路是先循环解密base64字符串,提取出可以隐写的最后2-4位,再拼接最后转回ascii码flag就出来了,下面是python2j脚本
#coding=utf-8
def get_base64_diff_value(s1, s2):
base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
res = 0
for i in xrange(len(s2)):
if s1[i] != s2[i]:
return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))
return res
def solve_stego():
with open('G:/Desktop/1.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)
print diff
pads_num = steg_line.count('=')
if diff:
bin_str += bin(diff)[2:].zfill(pads_num * 2)
else:
bin_str += '0' * pads_num * 2
print goflag(bin_str)
def goflag(bin_str):
res_str = ''
for i in xrange(0, len(bin_str), 8):
res_str += chr(int(bin_str[i:i + 8], 2))
return res_str
if __name__ == '__main__':
solve_stego()
最后得到flag为:flag{Base_sixty_four_point_five }
第十二题:功夫再高也怕菜刀
题目描述:菜狗决定用菜刀和菜鸡决一死战
打开文件是一个流量包、
提示说菜刀,那么我们就筛选信息。
提示里面包含一个flag.txt文件,于是再kali里面先用binwalk查看一下,也可以用windows中binwalk工具链接
说明存在flag.txt,使用kali 中foremost进行分离。也可以用windows中foremost工具链接
用7z工具打开,需要密码:
于是,转头又分析流量包,发现刚刚找flag时候出现的6666.jpg有点可疑。
右击,点击追踪流,点击tcp流
当流到第七个的时候,出现了可疑的数据流。
通过与常见文件头对比
发现就是jpg,然后把这些十六进制,复制到010editor中
点击另存为1.jpg
图片就出来
第一次猜测这个是flag,但是输入进去不对,那么猜测就是压缩包密码:Th1s_1s_p4sswd_!!!
解压出:flag :flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}