题目地址:https://buuoj.cn/challenges
0x01 签到

flag就在页面上。我们复制提交即可。
flag{buu_ctf}
0x02 金三胖
下载附件之后。得到一个GIF动图
MAC电脑的话使用预览打开可以一帧一帧的看。

Windows电脑可以使用PS打开即可发现多个图层。图层里面就会有flag。这里不再截图。
最后得出:
flag{he11ohongke} # 注意这里的ll实际为阿拉伯数字11
0x02 二维码
下载附件得到一个二维码图片。二话不说百度搜索二维码在线解码也可以使用微信扫码

得到提示:Secret is here (秘密就在这里)
使用工具binwalk发现图片中隐藏了zip文件

之后尝试提取这个zip文件

进入文件夹后发现里面有一个压缩包和一个txt文本文件
尝试查看4number.txt文件中的文件内容。发现为空。尝试解压压缩包文件发现需要密码。
但是这里要注意4number.txt的文件名。由文件名可知密码可能是4位数字。

于是我们使用ARCHPR破解zip的密码(也可以脚本破解)
最后得到密码7639

输入密码解压之后得到4number.txt,查看文件内容得到flag

flag{vjpw_wnoei}
0x04 你竟然赶我走
下载附件之后得到一个图片即你竟然赶我走

使用binwalk查看图片是否隐藏了某些东西。于是乎无果

我们直接使用十六进制编辑器打开(我这里使用的是hexedit)类似的工具还有winhex以及010edit。
直接搜索flag可以发现flag

flag{stego_is_s0_bor1ing}
0x05 N种方法解决
下载附件解压之后得到一个KEY.exe文件。尝试运行发现运行不成功。

于是我们使用十六进制编辑器打开。我这里直接使用strings命令了。
这里的结果和十六进制编辑器打开的结果是一样的。

得到一段Base编码。即iVBORw0KGgoAAAANSUhEUgA.........
我们可以打开网站: 在线base64解码

另存为之后得到一个二维码。扫码即可得到flag
还有一种方式是使用Python的内置base64模块进行base64解码。
base64.txt的内容为我们的base64编码。
import base64
file = open('base64.txt','r')
file = file.readlines()
flag = base64.b64decode(str(file))
imgdata = flag
with open('123.png','w') as f:
f.write(imgdata)
运行脚本之后会得到一个123.png的二维码图像文件。

随便一个二维码解码网站得出

flag{dca57f966e4e4e31fd5b15417da63269}
0x06 大白
根据题目的提示。可以看出。它可能是一个宽高隐写。

解压之后得到一张dabai图片。
PS:作者在macos系统是打不开这张图片的,初步考虑是兼容性问题。于是我换到了Windows成功打开。
之后我们使用winhex直接修改图片的宽高。
将其图像高度的十六进制修改为EF保存之后。即可看到flag。

flag{He1l0_d4_ba1}
0x07 基础破解
根据提示可以得知它是一个4位数字加密的压缩包。

我们这里依旧使用ARCHPR软件进行zip压缩包的破解。
最后得出密码为2565

解密成功之后,得到密码2563
解压之后得到flag.txt。

文件内容好像是base64编码过。我们这里使用脚本进行解密吧
import base64
print(base64.b64decode('ZmxhZ3s3MDM1NDMwMGE1MTAwYmE3ODA2ODgwNTY2MWI5M2E1Y30='))

flag{70354300a5100ba78068805661b93a5c}
0x08 乌镇峰会种图

下载附件后直接是一个图片。我们使用binwalk看下有没有隐藏文件。

发现并没有。我们接着使用十六进制编辑器打开。我这里依旧使用strings。。太好用了。。
得到flag

flag{97314e7864a8f62627b26f3f998c37f1}
0x09 LSB
下载附件得到一个名为flag11.png图片。
我们使用StegSolve软件打开

我们点击右箭头知道read plane 0 的时候。发现图片上面多了一个黑不溜就的东西。
我们这里先记一下。

通过我们一直更改图像的色彩,可以得出Read plane 0 和 Green plane 0 以及 Blue plane 0的图像上方都会有一个黑不溜就的东西。
于是我们在数据提取模块,将这个数据给提取出来。

根据前面得出的结果,我们这里配置一下。
之后点击Perview可以发现文件头是一个PNG类型的图片。

我们尝试将这个PNG图片进行导出 点击Save Bin

我们将其命令为falg.png。可以发现是一张二维码图片。

于是我们使用在线扫码工具进行解码。
成功得到flag

flag{1sb_i4_s0_Ea4y}
0x10 文件中的秘密

下载附件进行解压之后得到一张海贼王的图片。
使用strings无果之后。我们尝试使用binwalk工具

接着我们使用StegSolve软件查看图片的信息(由于我使用的是mac,不知道怎么看图片属性。。)
Windows电脑的话直接鼠标右键属性。
在StegSolve软件中点击Analyse中的file Format 往下面即可发现flag

我们还可以使用exiftool工具(kali自带)查看图像的属性
也可以得到flag

0x11 Wiershark

通过题目背景描述可以得知。黑客抓到了管理员登录数据的流量包。密码就是flag
解压附件之后得到一个流量包,直接使用wireshark打开即可。
刚刚题目描述说道,黑客抓到了管理员登录数据的流量包,登录的时候它有什么特征吗?很显然登录时候的数据一般由POST请求发送。于是我们直接过滤HTTP包的POST请求数据包即可。

通过查看包内容,发现了管理员登录的密码。而提示说密码即是flag。
除了过滤POST请求以外还有其他方法吗?刚刚题目背景说,管理员的密码就是flag。
按照程序员地习惯,一般用于登录密码的参数名一般为password、passwd、pwd。
我们直接在wireshark中搜索数据包内容即可。

0x12 rar

根据题目提示可以得知,这是一个加密的压缩包。并且密码是四位纯数字。
我直接上ARCHPR

得到压缩包密码8795
解压之后得到flag文件,查看即可得到flag。

flag{1773c5da790bd3caff38e3decd180eb7}
0x13 zip伪加密
尝试解压发现需要密码。红红火火恍恍惚惚哈哈哈。

之后使用我们的十六进制编辑器。打开这个压缩包。
进行一些简单的分析。

其中全局方式位标记表示文件是否加密。如果该值为00 00那么代表不是不加密。为其他值即代表加密。最常见的加密值为00 09
以下是经过加密的压缩包的十六进制和未加密的压缩包十六进制中的全局方式位的对比。

由此可知。我们只要把两处的00 09 修改为 00 00 即可。
之后保存即可。

尝试解压,得到flag.txt文件。文件内容即为flag

flag{Adm1N-B2G-kU-SZIP}
0x14 qr
下载附件得到一个二维码图片。于是直接扫码得到flag

0x15 被嗅探的流量

下载附件之后使用wireshark打开
我们点击统计 找到协议分级。在此我们可以看到关于文件传入的流量并没有FTP,于是我们将投向于HTTP协议。

在wireshark中的过滤器中键入http,即可只显示http协议的数据包,通过分析该协议发现,目标请求了upload.php即文件上传页面。

我们在其处鼠标右键选择追踪流之后选择HTTP流。

通过HTML源码发现,该页面是一个文件上传(传输)页面,文件上传表单是通过post请求发送的数据包

于是我们使用过滤器,过滤掉其他数据包只显示请求方法为POST请求的HTTP数据包
最后在字节流中发现了flag。

如果要看更详细的数据包内容,右键该数据包追踪流——>HTTP流即可。
flag{da73d88936010da1eeeb36e945ec4b97}
关于wireshark的使用请参见 Wireshark工具的使用
0x16 镜子里的世界
下载附件之后,是一张放大镜的图片。文件名为steg.png。
镜子里的世界是我们人眼看不到的东西。而文件名也是steg开头的。。于是我使用stegsole打开。
当red plane 为 0的时候。时候一个黑色的图片。

通过测试发现red plane 和 green plane 以及 blue plan 都会出现一个黑色图片。于是我们将其提取出来。
经过调试之后,我们得到一个类似文本的东西,我们点击save Bin,将其存储为一个txt文件。

文本内容为
Hey I think we can write safely in this file without anyone seeing it. Anyway, the secret key is: st3g0_saurus_wr3cks
翻译:嘿,我想我们可以安全地写在这个文件中,而没有人看到它。不管怎样,秘钥是:st3g0_saurus_wr3cks
flag{st3g0_saurus_wr3cks}
0x17 ningen

通过题目描述得出,本题存在加密。而密码应该是四位数。而银行密码一般都是数字。所以猜测是四位数字
附件打开之后是一个图片。于是我们使用binwalk查看是否有隐藏文件。

可以看到里面隐藏了ZIP压缩文件。

进入文件夹之后,得到一个压缩包和一个txt文档。文档内容为空。而解压压缩包需要密码。

丢到ARCHPR跑了一圈得出密码即8368。

解压压缩包之后得到ningen.txt
而文件的内容就是flag
flag{b025fc9ca797a67d2103bfbc407a6d5f}
这个好像和前面的某道题类似。。。。
0x18 小明的保险箱

而这一题好像又是四位纯数字密码。。。
附件依旧是一个图片。图片怎么会需要密码呢?于是我们使用foremost工具。
binwalk工具相对来说比formost更快一些。但是binwalk有时候不能提取某些数据。两者可以换着来。前面使用的都是binwalk这里我使用foremost吧。
foremost和binwalk都是kali系统自带的。我们这里使用kali解题。(当然也可以自行下载)

foremost会默认把分离日志和结果放到output目录下。我们进入该目录可以发现audit.txt和分离出来的内容。

通过查看audit.txt可以得知图片中隐藏rar压缩包文件。
JPG和RAR都是一个文件夹。其JPG的内容为我们的原始图像,而RAR文件夹中的内容为我们分离出来的压缩包。
进入到rar文件夹中,尝试解压00000156.rar文件,提示需要密码。

我们直接上ARCHPR,根据提示这是一个4位纯数字密码。

得到密码7869。
解压之后得到flag

flag{75a3d68bf071ee188c418ea6cf0bb043}
0x19 爱因斯坦
使用binwalk分析这个图片发现里面藏有zip文件。

这个题和上面的基本一致,就不讲解了。直接看图吧

压缩包解压的时候需要密码。一般情况下这种题目,没有提示密码的题,一般密码都在题目中。需要我们耐心寻找。一般图片的话都会写在属性里面。

得到一个看似不是密码的字符。于是我们去尝试解压一下,得到flag文件。文件内容即为flag。

flag{dd22a92bf2cceb6c0cd0d6b83ff51606}
0x20 easycap
下载附件解压之后是一个流量包使用wireshark打开即可
在TCP流量的任意一处点击追踪流中的TCP流即可拿到flag


flag{385b87afc8671dee07550290d16a8071}
0x21 另外一个世界
解压之后是一个图片。
我们使用strings工具查看其图片的内容。
发现了一段可疑的二进制。

使用Python计算一下该二进制的长度,发现是56位。
8个一组,发现首位均为0,符合128个ascii规律,因为ASCII码的二进制都是以0开头的。所以这里尝试使用将其转换为ASCII码。
01101011011011110110010101101011011010100011001101110011

bins = '01101011011011110110010101101011011010100011001101110011'
flag = ''
postion = [bins[i:i+8] for i in range(0,len(bins),8)]
for i in postion:
flag = chr(int(i,2))
print(flag,end='')
脚本运行结果:

flag{koekj3s}
0x22 隐藏的钥匙

解压附件之后得到一个图片。
使用十六进制编辑器打开。在里面搜索flag得到了一段base64编码。

在Python中解码可得到flag

flag{377cbadda1eca2f2f73d36277781f00a}
0x23 FLAG
使用StegSolve工具打开题目给的图片。
当值为Read plane 0 的时候图片发生变化。

经过测试,当Read plane和Green plane以及Blue plane 为0的时候图片发生巨大变化,猜测可能藏着文件。
发现里面是一个PK开头的文件,是一个压缩包文件。

导出为flag.zip之后,尝试解压。
得到一个文件名为1的文件
通过查看文件内容,发现是一个ELF文件。

ELF文件(Executable Linkable Format)是一种文件存储格式。Linux下的目标文件和可执行文件都按照该格式进行存储。
由于是Linux的可执行文件,所以我们在Linux平台直接运行即可。
但是我这里就运行不成功。。。
最后在IDA pro中找到了flag

flag{dd0gf4c3tok3yb0ard4g41n~~~}
0x24 假如给我三天光明
下载附件解压之后得到一个图片和一个压缩包。
压缩包直接解压会提示格式错误。我们将其后缀.zip修改为.rar解压即可。提示需要密码。
接着我们打开题目给的图片。
在图片的下方带有一些盲文,在网上找来了盲文对照表。

最后得出kmdonowg即压缩包的密码。
解压之后得到一个音频。
使用音乐打开听着怪难受的。。。。其实它是一种摩斯电码的声音。

之后我们使用Audacirty软件打开这个音频。点击菜单栏中的文件——>打开

打开之后会发现,确实是摩斯电码。里面的长线代表“-”,短线代表“.”,中间的大间隔代表停顿使用空格表示即可。
-.-. - ..-. .-- .--. . .. ----- ---.. --... ...-- ..--- ..--.. ..--- ...-- -.. --..
解密网站:http://ctf.ssleye.com/morse.html
flag{wpei08732?23dz}
0x25 神秘龙卷风

通过背景描述可以得知,密码应该是一个四位数字。
解压附件之后得到一个压缩包。解压的时候提示需要密码。
使用ARCHPR工具进行压缩包解密,得到密码5643

解压之后得到一个txt文本文件,其内容为

根据文件内容的特征,猜测是brianfuck加密。
brianfuck加密的特征:>< + - ,. []八种符号组成。
解密网站:Brianfuck

flag{e4bbef8bdf9743f8bf5b727a9f6332a8}
0x26 后门查杀

根据背景描述可以得知webshell的密码是经过MD5加密的。
放到火绒里面查杀,发现include\include.php文件中存有后门病毒。

打开include.php文件。搜索md5,因为背景描述里面提示我们密码是md5加密的。
这里有两个变量需要我们注意。$k和$pass。

经过一番查找发现$pass有一段MD5加密的值,就是我们的flag

flag{6ac45fb83b3bc355c024f5034b947dd3}
0x27 数据包中的线索

下载附件解压之后得到一个流量包,使用wireshark打开。
在统计中选择协议分级,我们可以发现,流量包中关于"在线交流"的数据包好像只有http协议。

所以我们这里直接过滤HTTP
一共有四个HTTP数据包,第一个为请求包,发现返回的301。这个不用关注。
主要看第二次的请求。它请求了fenxi.php页面。

我们在feixi.php处右键追踪流,观察数据包的内容。
在数据包中发现了一段类似base64编码的字段。

我们将其复制,在base64解密网站中打开。发现是一个jpg图片。将其另存为jpg即可。

另存为之后得到一个路飞的照片和flag。

flag{209acebf6324a09671abc31c869de72c}
0x28 荷兰宽带泄露
下载附件解压之后是一个bin文件。题目说是宽带数据,很有可能和路由器相关。
我们使用routepassview这个软件打开题目给的bin文件。

简单的看了下配置信息发现并没有有用的信息,搜索username和password均得到,但是搜索flag无果
username: 053700357621
password: 16239098
尝试将username套上flag之后提交。发现提交成功。
flag{053700357621}
0x29 来首歌吧
打开附件之后是一个音频,直接拖到Audacity中打开

发现上方是一个类似为摩斯密码的东西,长线代表'-',短线代表'.' 大间隔代表空格
得出如下摩斯密码
..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.
解密之后得到
5BC925649CB0188F52E617D70929191C
flag{5BC925649CB0188F52E617D70929191C}
0x30 webshell 后门

与上面某道题类似,我们直接使用火绒扫描一下。

发现扫描到了一个webshell,类似扫描的工具还有D盾。
打开危险文件发现,好像和上面某道题一样。

0x31 九连环
下载附件打开之后是一个图片,直接使用binwalk打开看下,发现里面藏了zip

尝试将其分离出来。

我这里使用的是mac,网上有的wp说是一个伪加密,可是我使用macos的归档直接解压出来了。
分离之后,发现是一个文件夹和一个压缩包。压缩包解压之后是asd文件夹。。

这个asd文件夹分离出来的时候就存在了,可是4C64.zip压缩包中还有个asd。真让人摸不着头脑。
我们就按照网上的说法。使用伪加密思路解压吧。
使用Bandizip打开,发现good-已合并.jpg文件前面有把锁,表示加密着的。

使用是十六进制编辑器打开。直接搜索good,点击第二个结果(即压缩源文件目录区)
找到 50 4b 01 02 3f 00 14 00 01
将最后的 01 修改为 00 保存即可。

之后就可以正常解压了。
进入asd文件夹之后发现一张图片和一个zip文件,zip文件有密码不能直接解压。
于是考虑从图片中获取密码。

尝试查看图片的属性信息,发现并没有什么有用的东西。

之后我们使用,steghide这个工具查看图片的隐藏信息。
工具的安装
# kali
apt-get install steghide
PS:我这里将good-已合并.jpg重命名为good.jpg了。不影响解题。

发现里面存在一个ko.txt文件。
我们尝试提取该文件。
steghide extract -sf good.jpg
extract 表示提取
-sf 指定隐藏的文件。

最后发现了一段英文,前面那个乱码可能是中文。我们看下面的密码即可。
得到qwe.zip压缩包的密码
bV1g6t5wZDJif^J7
解压之后得到flag

flag{1RTo8w@&4nK@z*XL}
0x32 面具下的flag
解压附件之后是一张图片。

以上图片仅供展示,不是题目提供的附件。
使用binwalk打开发现有一个zip压缩包

尝试分离

分离之后得到一个zip文件和一个vmdk文件。

zip文件又是一个伪加密。这里就不再记述关于解伪加密的文案了。参照上一题。
zip解压之后是一个flag.vmdk。但是flag.vmdk被分离出来的时候就存在。。。
vmdk是一个虚拟机镜像文件,该文件地大小只有3.1MB,显然使用虚拟机软件打开不太现实。
在网上搜索发现,vmdx是可以使用7z直接解压的。

解压之后得到几个文件夹

主要看key那一部分。根据名称依次打开文件夹。
key_part_one打开之后发现NULL文件文件内容为Brainfuck密文

解密之后得到
flag{N7F5_AD5
打开第二个文件夹发现,有两个文本文件,依次打开如下:

发现了ook加密。解密之后发现
_i5_funny!}
最终组合flag
flag{N7F5_AD5_i5_funny!}
0x33 写在最后
关于BUUCTF的MISC模块的更新,暂时就到这里。后续有时间的话,还会更新。
本文作者为blog,转载请注明。