攻防世界MISC新手练习区 部分WriteUp
ext3
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742227-1632830923.png)
题目提示是Linux光盘,附件下载下来
首先了解一下ext3
ext3是第三代扩展文件系统(英语:Third extended filesystem,缩写为ext3),是一个日志文件系统,常用于Linux操作系统。他是很多Linux发行版的默认文件系统。
在Linux上加载
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742266-1636554183.png)
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742250-124896509.png)
SimpleRAR
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742231-1418178089.png)
下载附件后,解压并打开压缩包,发现只有一个txt文件
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742231-1252884404.png)
打开发现并没有flag,因为题目中提示有双层图,猜测压缩包中应该还有一个图片文件,用WinHex打开压缩包,发现还有一个图片,把图片开头部分的7A改成74(rar对png的文件类型编码是74,就在flag.txt文件结束,这里是7A,所以改过来就行了)
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742296-921202353.png)
改完之后,保存解压,图片就出来了,但是图片打开之后是空白的
还记得题目的提示嘛,我们用StegSolve打开图片发现只有一半二维码
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742277-211916344.png)
再把secret.png丢到WinHex里发现文件头为Gif图,将图片后缀改为gif
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742271-717689244.png)
再把GIF分离,发现有2帧
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742266-169539221.png)
分别用StegSolve打开,得到两个二维码,补充完整二维码定位区,拼在一起得到flag
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742305-621365090.png)
base64stego
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742277-65647802.png)
下载附件后是一个压缩包,解压缩时提示需要密码,这时候就要思考了,破解密码?在题目中一般都会提示,不然只能盲目爆破。然后想到伪加密,先用winRAR修复下,果然修复后的能直接解压(据说用360压缩可以直接脱出里面的文本)
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742305-202361038.png)
解压后得到一个文本,里面是大量base64加密(根据题目名字也可以知道)
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742290-1038979990.png)
这是base64隐写,下面是别人的解题代码
b="""
这里放base64加密的内容
"""
e = b.splitlines()
binstr = ""
base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
for i in e:
if i.find("==") > 0:
temp = bin((base64.find(i[-3]) & 15))[2:] # 取倒数第3个字符,在base64找到对应的索引数(就是编码数),取低4位,再转换为二进制字符
binstr = binstr + "0" * (4 - len(temp)) + temp # 二进制字符补高位0后,连接字符到binstr
elif i.find("=") > 0:
temp = bin((base64.find(i[-2]) & 3))[2:] # 取倒数第2个字符,在base64找到对应的索引数(就是编码数),取低2位,再转换为二进制字符
binstr = binstr + "0" * (2 - len(temp)) + temp # 二进制字符补高位0后,连接字符到binstr
str = ""
for i in range(0, len(binstr), 8):
str = str + chr(int(binstr[i:i + 8], 2)) # 从左到右,每取8位转换为ascii字符,连接字符到字符串
print(str) # 结果是 Base_sixty_four_point_five转换为
运行后得到flag
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742285-1706419788.png)
功夫再高也怕菜刀
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742308-2108487785.png)
下载后的附件是一个以pcapng结尾的文件
pcap是流量包的后缀,再加上png,可能这是两个文件,一张图片和一个流量包
然后我们用foremost(foremost是一个基于文件头和尾部信息以及文件的内建数据结构恢复文件的命令行工具)分离文件果真得到一个压缩包
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742255-323377748.png)
很明显解压密码需要我们在pcapng文件中找
使用wireshark打开,在搜索框里直接输入flag.txt
一直查找,直到1150个项目时,发现flag.txt上面有一个JPG图片,立刻追踪TCP流
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742295-1347334278.png)
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742302-1852960999.png)
我们发现FFD8是JPG图片的16进制头,于是将这堆16进制码复制粘贴至winhex中,以ASCII Hex形式粘贴,最后以.jpg格式保存该文件
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742309-1662929823.png)
图片上是解压密码,输入后得到flag
![](https://img2022.cnblogs.com/blog/2236821/202205/2236821-20220519074742304-1277504769.png)
本文来自博客园,作者:NoCirc1e,转载请注明原文链接:https://www.cnblogs.com/NoCirc1e/p/16287145.html