BUUCTF misc 刷题第一页
你竟然赶我走
1.下载后解压得到biubiu.jpg,拖入010editor打开,在结尾发现flag:
二维码
1.解压后得到一张二维码,用工具QR Research打开,得到:
2.尝试使用Stegsolve打开,然后Analyse->File Format,拖到最底下发现了zip文件格式:(PK头)
3.由此可以想到使用binwalk分离png和zip文件:
4.打开压缩包,尝试解压,发现需要密码,但提示我们是四位:
5.在kali中使用apt -y install fcrackzip安装暴力破解工具fcrackzip,然后使用该工具对解压密码进行爆破:
fcrackzip -b -c1 -l4 -u 1D7.zip
重要参数说明:
-c 指定字符集,字符集 格式只能为 -c 'aA1!:'
a 表示小写字母[a-z]
A 表示大写字母[A-Z]
1 表示阿拉伯数字[0-9]
! 感叹号表示特殊字符[!:$%&/()=?{[]}+*~#]
: 表示包含冒号之后的字符(不能为二进制的空字符),例如 a1:$% 表示 字符集包含小写字母、数字、$字符和%百分号
得到了解压密码
6.输入解压密码,拿到flag
注意:提交的时候需要将CTF改成flag(buuctf平台要求)
大白
1.首先解压打开图片dabai.png,并没有什么发现,但是题目中有提示:
2.可以联想到是出题人更改了照片尺寸使得flag信息被隐藏起来了
3.将图片拖入010editor,查看图片的IHDR和crc信息:
4.假设出题人修改了width,可以使用如下脚本:
import os
import binascii
import struct
#以二进制只读打开图片
misc = open("dabai.png","rb").read()
for i in range(1024):
#12~15是IHDR,struct.pack('>i',i)把整数i使用大端序打包成4字节的二进制数据,简单来说,就是高位补0
data = misc[12:16] + struct.pack('>i',i) + misc[20:29]
#binascii.crc32() 函数计算的 CRC32 校验和是一个有符号的 32 位整数
#& 0xffffffff是为了确保crc32成为32位无符号整数
crc32 = binascii.crc32(data) & 0xffffffff
if crc32 == 0x6d7c7135:
print(hex(i))
发现没有回显,可以猜想出题人应该是修改了height
5.将脚本简单修改一下:
#coding=utf-8
import os
import binascii
import struct
misc = open("dabai.png","rb").read()
for i in range(1024):
data = misc[12:20] +struct.pack('>i',i)+ misc[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
if crc32 == 0x6d7c7135:
print(hex(i))
得到了回显:
6.修改height,并保存,再次打开即可拿到flag
乌镇峰会种图
1.直接丢入010editor,在文件末尾即可找到flag
N种方法解决
1.解压后得到KEY.exe,首先拖入010editor,然后发现这是一个采用base64加密的图片:
2.百度在线网站 https://www.67tool.com/images/convert/base64 ;然后转成图片,下载下来,发现是一个二维码:
3.使用二维码批量扫描工具,发现了key:
4.直接将KEY改成flag,提交即可
wireshark
1.解压后得到一个pcap包,直接用双击打开(前提是安装了wireshark):
2.根据题目的提示,尝试寻找管理员登陆的流量
3.由于登陆大多用的是POST请求,因此我们可以先尝试用post请求过滤:
http.request.method == "POST"
可以直接找到flag
基础破解
1.解压后发现是一个rar文件,尝试打开其中的flag.txt文件,发现需要密码:
2.根据题目提示,发现密码是四位数字:
3.尝试使用ARCHPR爆破压缩包,得到密码2563
4.打开flag.txt,发现一串base64加密的字符串,正常解密即可拿到flag:
文件中的秘密
1.右键打开文件的属性,在详细信息中的备注里可以找到flag
LSB
1.题目提示为LSB隐写,那么我们直接用Stegsolve打开,然后使用Analyse->Data Extract,然后将Bit Planes中的RGB三种颜色都勾选成0(最低位),可以发现隐藏了png图片:
2.点击Save Bin,保存成1.png,发现是一张二维码:
3.在QR Research中打开,拿到flag:
注:需要将cumtctf改成flag再提交
zip伪加密
1.解压文件需要密码:
2.题目提示考点为伪加密,那我们先将zip文件拖入010editor:
3.zip真加密与伪加密的区别:
真加密:真加密的zip压缩包压缩源文件数据区的全局加密应当为01 00,且压缩源文件目录区的全局方式位标记应当为 01 00。
4.数据区和目录区的标识:
(1)压缩源文件数据区:ZIP的文件头标识固定为0x 50 4B 03 04
(2)核心目录区:核心目录区的标记为0x 50 4B 01 02
5.综上,我们只需要将record区中的frFlags(09 00)以及dirEntry中的deFlags(09 00)全部修改为00 00再保存即可
被嗅探的流量
1.根据题目提示,寻找文件上传的流量:
2.由于文件上传使用post传输,因此直接使用如下命令进行过滤:
http.request.method == "POST"
3.可以发现,第二行的数据后面有(JPEG JFIF image)的标记,猜测flag在其中,双击打开可以得到flag:
rar
1.根据题目提示,尝试使用ARCHPR爆破压缩包
2.爆破得到密码8795
3.解压文件,拿到flag
qr
1.直接用QR Research打开,即可拿到flag
注:需要将Flag改成flag再提交
镜子里面的世界
1.首先用Stegsolve打开,尝试使用File Format,并没有发现异常:
2.尝试使用lsb最低位隐写,拿到key:
3.将key用flag{}包裹即可
ningen
1.将文件拖入010editor,在结尾发现zip文件(PK头部)
2.将文件放入kali中,使用binwalk进行分离:
binwalk -e 9e3ec8c2-38c7-41cf-b5d7-abe7872de4c3.jpg --run-as=root
3.成功分离出zip文件
4.根据题目提示,使用工具fcrackzip对解压密码进行爆破:
fcrackzip -b -c1 -l4 -u 9721.zip
5.解压拿到flag
爱因斯坦
1.将文件拖入010editor,发现zip文件头和flag.txt:
2.将图片放入kali中,使用binwalk进行分离:
3.尝试暴力破解分离出的zip文件的密码,发现无果
4.查看misc2.jpg的属性,有了发现:
5.尝试将this_is_not_password当成解压密码,成功解压:
小明的保险箱
1.将文件拖入010editor,这次发现结尾附加了rar文件:
2.将文件放入kali中,使用binwalk进行分离,分离得到rar文件:
3.根据题目提示,使用ARCHPR进行爆破:
4.得到口令7689
5.解压拿到flag
easycap
1.直接追踪tcp流即可拿到flag
隐藏的钥匙
1.将图片拖入010editor,直接搜索flag,发现base64加密的flag:
2.解密后用flag包裹即可:
flag{377cbadda1eca2f2f73d36277781f00a}
另外一个世界
1.将图片拖入010editor,在结尾发现一堆可以的0和1:
2.尝试将这些0和1转成十进制,再转成16进制,最后再转成ascii:
import binascii
text = "01101011011011110110010101101011011010100011001101110011"
#转换成十进制
text_2 = int(text,2)
#转换成16进制
text_16 = hex(text_2)
#去除16进制前面的0x
text_16_modify = text_16[2:]
#将16进制转换成ascii
print(binascii.a2b_hex(text_16_modify))
3.用flag{}包裹即可:flag{koekj3s}
神秘龙卷风
1.得到一个rar压缩包,根据题目提示,使用ARCHPR进行爆破:
2.成功获得口令:5463
3.得到奇怪的编码,一眼brainfuck:
4.去在线网站解密:https://www.nayuki.io/page/brainfuck-interpreter-javascript
得到flag:
FLAG
1.题目没有任何提示,先将图片拖入010editor,无果。
2.使用Stegsolve打开,先使用Analyse->File Format打开,没有发现异常
3.猜测是LSB隐写,使用Analyse->Data Extract
4.发现PK头,点击Save Bin,保存成2.zip
5.提示无法打开
6.使用winrar修复文件:
7.将其中的文件复制到kali中,使用strings命令打开:
8.根据题目要求,将hctf改成flag即可
数据包中的线索
1.打开流量包,发现可疑的流量:
2.右击,追踪TCP流:
3.感觉像是base64编码,解密一下发现有JFIF头:
4.使用网站https://www.67tool.com/images/convert/base64 ,然后转成jpg图片,打开得到flag:
假如给我三天光明
1.打开图片,发现图片底下有可疑的图案,猜测是盲文:
2.上网搜索盲文对照表,推出密码是kmdonowg:
3.输入解压密码,解压得到music.wav:
4.将music.wav拖入Audacity中打开,听声音以及观察波形判断出来是摩斯密码:
5.将音频放入网站:https://morsecode.world/international/decoder/audio-decoder-adaptive.html ,解密即可:
6.将CTF改成flag{}包裹,再将所有的大写字母改成小写即可
后门查杀
1.根据题目提示,下载后在include文件夹下的include.php中发现了密码,用flag{}包裹即可:
2.首先可以直接看出上传了POST请求,来判断这是一个木马文件,再者可以用D盾等扫描工具进行扫描来发现这是一个php大马
webshell后门
1.刚下载完,火绒就报毒了:
2.恢复下文件并打开,发现跟上一题是一样的php大马:
3.flag{}包裹$pass的内容即可
来首歌吧
1.下载了stego100.wav,直接用Audacity打开,听到有电报声,波形也可猜测为摩斯密码(长柱代替摩斯密码中的 - ,短柱代替摩斯密码中的 . ,中间的长线段用空格代替):
2.得到如下摩斯密码:
..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.
3.去在线网站解密,并将小写字母改成大写,再用flag{}包裹答案:
面具下的flag
1.首先使用stegdetect进行探测,发现JPEG文件已损坏,数据段过早结束:
2.用010editor打开,发现zip文件头部(PK)和flag.vmdk:
3.将文件后缀修改为zip,发现解压需要密码:
4.猜测为伪加密,将图中09改为00即可成功打开flag.mdk文件:
5.百度可知,vmdk文件可用7z解压,于是将文件放入kali中:
7z x flag.vmdk -o./
6.解压后,桌面上多出了两个key目录:
7.当前这两个key目录是只读权限,无法打开,需要用chmod命令赋予它们最高权限:
chmod -R 777 key_part_one key_part_two
8.发现两段都是brainfuck加密:
这一段得到一半flag:flag{N7F5_AD5
这一段得到另一半flag:_i5_funny!}
综合起来,flag为:flag{N7F5_AD5_i5_funny!}
荷兰宽带数据泄露
1.下载文件,发现是conf.bin,百度一下:
2.点进去看看,如何查看:
3.使用该工具打开:
4.打开后根据题目提示是宽带数据泄露,搜索username和password:
5.最后发现flag{053700357621}是最终的题解
九连环
1.首先用010editor打开,发现藏了zip文件(PK头)
2.将文件放到kali下,使用binwalk进行分离:
3.将4C68.zip拖入010editor中,然后猜测jpg处是伪加密,将01 08改为00 00:
4.保存后,将其中的图片复制到kali中:
5.经过不断尝试,发现可以使用steghide将隐写的信息提取出来
6.读取ko.txt,获取压缩包密码:
7.解压拿到flag: