BUU—MISC刷题记录
浅浅记录一下BUU里感觉比较有价值的题目
0荷兰宽带泄露
解压后发现一个bin文件,第一次碰到不知道怎么处理,看了一下别的师傅的wp了解到一种新的工具:RouterPassView
(用于破解宽带数据文件的密码),题目没有提示Flag
那试试用户名
解压发现是xls
文件,猜测是xls
隐写
但是010一查发现有pk头,改后缀一查
flag{M9eVfi2Pcs#}
1被劫持的神秘礼物
下载是一个流量文件,结合标题应该是流量劫持
主要是HTTP流量,直接追踪流
用captfencoder
MD5一下结束战斗
flag{1d240aafe21a86afc11f38a45b541a49}
2被偷走的文件1
用foremost
分离,解压需要密码,先确定流量中没有藏密码,再暴力破解
flag{6fe99a5d03fb01f833ec3caa80358fa3}
3藏藏藏
看到图片结合题目名,感觉图片隐写或者图片里包含文件
顺利分离出一个压缩包,打开是一个docx文件,隐写无疑了
然而里面是一个二维码(扫兴啊),直接扫就出来了
4佛系青年
解压文档需要密码,有一张png
是可以查看的,先010查一下
查完没有藏文件,那应该就是隐写了
结果没有发现隐写,感觉被骗了
看一眼压缩包,是伪加密(这里本来没看见的,后来仔细看才发现,也算学到一点分别伪加密的方法)
改一下解压,文本里可以看到与佛论禅的加密,用一下随波逐流
5刷新过的图片
附件是一张图片,提醒刷新,本来以为是什么操作,仔细想了以后是F5(刷新)隐写
把项目git clone之后发现jdk17环境下运行直接报错,换jdk11看看
成功了,打开提取的文件发现有PK头
一开始尝试用复制粘贴的办法在010里重新新建一个文件,但是失败(报错需要分卷,猜测是复制粘贴的过程中有些字符无法被复制)
那么直接改原文件后缀,压缩包是伪加密,手改或者随波逐流走一下结束
flag{96efd0a2037d06f34199e921079778ee}
6秘密文件
附件是流量,wireshark启动!
foremost出一下,要密码,先尝试弱密码爆破
flag{d72e5a671aa50fa5f400e5d10eedeaa5}
7你猜我是个啥
看来是改了后缀,010先查查看
演都不演了…
8鸡你太美
盯完帧没有东西,看看副本,发现已经损坏
用010一查是缺少文件头手动补上
(这里-其实是_)
9神奇的二维码
附件是一张二维码,先扫扫看
看来不在这里,用010查一下
里面藏了文件,用 binwalk
分离(foremost会分不出来)
分出来四个包,分别解压
其中一个包解压是一张jpg和一个压缩包(内含一个同名jpg),有两种想法,一种是压缩可读图片为压缩包明文攻击(crc
校验值相同),另一种就是暴力拆包
先暴力拆包,结果显示不给拆
[!NOTE]
以下为对题目考察的不是明文攻击的验证,可以跳过
初步看一下大小是一样的,那么直接查crc
值
这里我们用ubuntu查,使用crc32
命令
sudo apt install libarchive-zip-perl
crc32 flag.jpg
结合压缩包的crc24A345DA
,得出不是明文攻击
还是看看其他几个解压出来的东西吧
到目前为止没有什么用处,看看另一个加密的音频文件和docx文件
这么长的base64还是要忍不住想是不是base64和图像之间的转换的,但是区区8k字符加上还有一个没有解压的包直接让我打消这个念头了,直接basecrack
伺候
python3 basecrack.py -m -f flag.txt
解压之后,用Audacity看一下,一眼摩斯
水平有限,还是手敲罢
11 111 010 000 0 00 000 0001 0 010 1011 0001 0 010 1011 0 01 000 1011
大写不对,换个小写
鉴定为图片纯纯的诈骗(恼
10梅花香自苦寒来
附件是一张png
,没有其他明显的提示,看一眼属性
要画图,那么应该藏了坐标,010查一下
可以看到文件尾藏了一种数据,接下来有两种方法
随波逐流
将文件拖入会自动提取并且解码,再用其内置的坐标画图最终得到一张反色的二维码
这个时候用stegsolve
反色再扫就出来了
脚本画图
选首尾位置复制到记事本,复制到厨子再hex解码,得到一串坐标
贴到txt里,接下来就是画图,参考了别的师傅的wp,有两种做法
*gnuplot*
绘图
贴个脚本先
with open('flag.txt', 'r') as res: # 坐标格式文件比如(7,7)
re = res.read()
res.close()
with open('output.txt', 'w') as gnup: # 将转换后的坐标写入gnuplotTxt.txt
re = re.split()
tem = ''
for i in range(0, len(re)):
tem = re[i]
tem = tem.lstrip('(')
tem = tem.rstrip(')')
for j in range(0, len(tem)):
if tem[j] == ',':
tem = tem[:j] + ' ' + tem[j+1:]
gnup.write(tem + '\n')
gnup.close()
得到去括号,去逗号的坐标值
贴一下ubuntu下的下载和使用方法
sudo apt-get install gnuplot-x11
gnuplot
plot "output.txt"
可以扫出来
matplotlib绘图
把原文本去括号,用脚本跑
import matplotlib.pyplot as plt
import numpy as np
with open('flag.txt', 'r') as res:
re = res.read()
res.close()
with open('output.txt', 'w') as gnup: # 将转换后的坐标写入gnuplotTxt.txt
re = re.split()
tem = ''
for i in range(0, len(re)):
tem = re[i]
tem = tem.lstrip('(')
tem = tem.rstrip(')')
gnup.write(tem + '\n')
gnup.close()
x, y = np.loadtxt('output.txt', delimiter=',', unpack=True)
plt.plot(x, y, '.')
plt.show()