BuuCTF杂项WP

https://buuoj.cn/challenges

金三胖

下载附件如下:

仔细看,会发现有几帧明显有猫腻,果断stegsolve,发现如下几帧:

答案显而易见对吧!


二维码

下载附件如下:

别怕,扫描一下:

很明显,flag似乎就在二维码里,但不能被直接扫描出来,这条路走不通,我们就换条路,从图像本身进行分析

果然有东西!binwalk提取,发现是一个文件夹,里面是一个需要密码的压缩包,旁边是一个文本文档,名叫”4number“,提示很明显了——四位数字爆破

image-20211126004943690

解压,拿到flag!


你竟然赶我走!

hahaha,看看附件:

没啥可说的,010或者hex一看有惊喜


有N种方法解决

呐,这个附件打不开!!!—— 用010堪堪罢,惊喜出现

.png)

编码开始的地方似乎是让我们把这些base64编码转成图像,说干就干!

image-20211126010508963

扫一扫,得到答案!

image-20211126010624861


大白

下载附件如图:

image-20211126011348020

又时候,题干很重要,”看不到图?是不是屏幕太小了“——图片的长宽或许有问题!

image-20211126012245141

根据这个,我们通过010调整宽高,成功获得完整图片,你说flag在哪里呐😍

image-20211126012749979

PNG文件分析

image-20211126012915721

image-20211126013036241


基础破解

emmm…都提示暴力破解了,那就乖乖暴力破解吧。

image-20211126014055933

嘿嘿嘿🤭,爆破出来了!

解压文件,得到一段base64编码,转换即有flag!

image-20211126014623349


乌镇峰会种图

图片里有啥信息?没啥好吧,010或者hex一看就ok


文件中的秘密

emmm…不是我不想写,而是没啥可写,球球你康康属性吧。。。


LSB

lsb嘛,stegsolve康一康,发现以下三幅图I里都有一些竖形:

Data Extract

提示了PNG,我们将其save bin为PNG图片,得到二维码,扫描即可


Wireshark

分析流量包,自然是使用wireshark了!

image-20211126224306932

emmm…该看啥啊?

划重点

经过查询之后,了解到了题目中“黑客通过wireshark抓到管理员登陆网站的一段流量包(管理员的密码即是答案)”给了不止一个提示——登录用到的请求方式是POST或GET,一般网站采取POST方式(出于安全考虑),故先用POST为条件进行筛选筛选语句如下:

http.request.method==POST

image-20211126224745090

只有一条!追踪其TCP流即可找到password,即flag

image-20211126224917569


rar

告诉4位数字了,爆破就完了呗,拜拜

zip伪加密

压缩包文件分析

image-20211127011559649

image-20211127011629241

image-20211127011701328

依据上述知识点,我们打开010

image-20211127012016868

发现前后各有1个09,伪加密木大错,都改为0000即可,之后就会发现压缩包可以加压力,里面的文件里就是flag


qr

真就是:“二维码,谁用谁知道”,拜拜~

被嗅探的流量

提到流量分析,自然又是wireshark!

image-20211128141314047

过滤

image-20211128141343330

flag出来了。


镜子里面的世界

这个题啊,镜子里面啊,想隐写啊。(010、binwalk找不出啥来才想的🐶,)

LSB!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2021-11-27


ningen

得到图片,010和属性都没看出啥,于是binwalk,发现图片里面存在一个压缩包,提取即可。

binwalk

提取出来,爆破即可。

爆破

里面的文档即使flag


小明的保险箱

,,,跟上一个题不能说完全相似也只能说一模一样了,密码放在下面,溜了

image-20211129164902137


爱因斯坦

拿到题后,习惯性看一下属性,发现有一点值得注意的地方

image-20211129165526695

暂且放下,之后010看一看,binwalk看一看,出来个压缩包,唉唉,没密码怎么办???

抱着试一试的想法,填上备注的信息,有惊喜哦,哎嘿。


easycap

emmm…全都是TCP流有啥意思,我一个基本不会使wireshark的萌新直接追踪一下流flag就出来了、、、

image-20211129181440188


隐藏的钥匙

呐呐呐,属性、010,wait!010真的找出了东西哎!

image-20211129170005565

依据提示,base64转码即可


另外一个世界

属性,010,这次,我们又在010里找到了不寻常的地方

image-20211129172208458

一串2进制编码!

image-20211129172358141

解码即可。


FLAG

image-20211129175426237

在属性、010、binwalk无果后,我们来试试stegsolve,盲猜lsb(我只知道这个🐕)

image-20211129175853648

左面似乎啥也没有,但我们在右面发现了重头戏!504B0304,不是压缩包的文件头吗!!!果断将其保存为哦压缩文件,暂且无视bandizip的损坏提醒,解压下来堪堪——这是啥???!!!

一头雾水的我选择使用file命令辨别其文件类型

image-20211129180422750

elf文件,这真的是道misc,不是pwn???

ida打开,堪堪main函数,神奇的事情出现了!

image-20211129180541272

ok,解决了


假如给我三天光明

ctfer当真啥都要会啊。。。

pic

别问,问就是盲文

202009091617300

解出来是“kmdonowg”,很明显是解压码,解压音频,拖入audacity,观察波形图

image-20211129175146065

别问,问就是摩斯电码(一边对着一边打,眼要瞎了)

-.-. - ..-. .— .—. . .. ——- —-.. —… …— ..—- ..—.. ..—- …— -.. —..

线上解码即可


神秘龙卷风

依照题目所给信息爆破

神秘龙卷风

打开压缩包文本,发现神秘龙卷风

image-20211130083144863

很明显是brainfuck,在线解码即可

image-20211130083228685


后门查杀

后门查杀,就查杀后门呗😓

image-20211202181414306

题目已经提醒了密码即为flag,搜索pass,即可找到

image-20211202181722647


数据包中的线索

题目要交流内容,交流内容大概率是文本,因此我们把目标放在http协议上,过滤后,得到了以下四个。

image-20211202180930267

emmm,接下来我是一个个看的😂,最后在返回页面的那个流里发现了不同的东西—好长一段编码

image-20211202181046389

bae64解码,flag出现

image-20211202181203879


荷兰带宽数据泄露

下载附件之后得到.bin文件,起初并不知道该怎么看,经过查找资料、例题之后,发现这是一个路由器信息恢复类问题,答案可能是username或者password,ctrl+F,果然是username。

image-20211202174931265


来首歌吧

音频隐写,拖进audacity,

image-20211130083902936

明显的摩斯

… -… -.-. ——. …— … -… …- ——. -.-. -… ——- .—— —… —… …-. … …— . -… .—— —… -… —… ——- ——. …— ——. .—— ——. .—— -.-.

在线转码即可出flag


Webshell后门

emmm,这题和上面的某个题不能说一模一样,也只能说基本类似了,是哪个题我不说🤐


面具下的flag

属性里有ps,打开之后无果,010没有思路,最后使用binwalk,发现了压缩包!

image-20211130084916891

但当我们兴高采烈的准备爆破时

image-20211130085128897

为什么呢?—— 联系前面做题的经验,我们猜测是伪加密

image-20211130092850611

果然是,我们将其更改,如上图

image-20211130093034197

在试过多种方法后,我仍然一头雾水,最终在wp的帮助下解决此题(惭愧)

原来是把文件当压缩文件!

7Z命令

在这里插入图片描述

可以发现,文件就在其中一个压缩包里,密码爆破没给提示,只能从图片入手了,但是,属性、010、binwalk在图片里都没发现有用的东西,最终还是借助wp才做出这道题

image-20211130225316574

提取出了多个文件夹,其中两个明显提示有flag

one

image-20211130225443219

two

image-20211130225509800

解码即可


九连环

下载好图片后,属性没提示,但在010里搜flag发现了一些东西

image-20211130130305519

估计flag就在这个文档里,走,上binwalk!

image-20211130130511145

里面果然还有东西,把他们都提取出来

image-20211130130838874

steghide的使用

steghide的使用

img

使用后,我们发现,出现了“ko.txt”这个文件,而它正是压缩包的密码,解压后,打开文档,本题结束。

image-20211130131701943


被劫持的神秘礼物

wireshark查看,从题目中“MD5”和“哈希”一下,我们可以推测我们要找的大概率是文本,因此我们优先追踪http流,果然不出所料。

image-20211207002614033

嗯,然后随波逐流哈希一下,嗯

image-20211207002552573

此即为flagヾ(≧▽≦*)o


刷新过的图片

提到键盘上的刷新,自然想到F5键,由此我们确定了本题的隐写方式——F5隐写

F555

java Extract “待提取的图片路径”

即会提取出其中文件,如下:

image-20211206235445647

我们查看解出的文件,发现一堆乱码,便怀疑不是文本文件,于是用file一看,果然不是

image-20211207000820364

拖到win里更改后缀,发现解压需要解压码,于是去爆破

image-20211207002648795

为什么没有文件?—— 依照前面的经验,怀疑是伪加密

果然是

image-20211207003202319

解出来了!!!睡觉!!!


Snake

属性没啥东西哦,然后堪堪010,结果发现以下·信息

image-20211207081456197

但是——没啥用,还是老老实实binwalk吧

image-20211207081923254

提取出的文件如下所示

image-20211207082040847

cipher里一堆乱码,看key,key里是如下文本

V2hhdCBpcyBOaWNraSBNaW5haidzIGZhdm9yaXRlIHNvbmcgdGhhdCByZWZlcnMgdG8gc25ha2VzPwo=

明显的base64,解码得

What is Nicki Minaj’s favorite song that refers to snakes?

image-20211207082546271

想来应该key是Anaconda(水蚺—南美洲蟒蛇),但问题又来了,这是个什么编码???

最后经过查看WP,才知晓,这是一种名为“Serpent (蛇; 尤指大蛇;)”,合着这题真就snake了

Serpent

在线解码网址:http://serpent.online-domain-tools.com/

image-20211207084605840

flag解出。


认真你就输了

下载得到xls文件,打开时提示文件错误,于是用010一看

image-20211207163333416

有戏!!!

binwalk -e一下,压缩包没加密,解压完找到文件即可


藏藏藏

属性、010都没啥,用binwalk发现有zip,解压即可得到二维码

image-20211207173626114


被偷走的文件

又是流量分析,祭出wireshark,根据题目所给提示我们应该查找ftp来看文件传输,如下所示

image-20211207174256544

将文件提取出来,目标即是rar文件,因此使用binwalk命令进行分解,得到压缩包,需要密码?

爆破即可

image-20211207174638285

此题结束。


菜刀666

菜刀与一句话木马

有个菜刀叫中国菜刀,有个木马叫一句话木马,因为隐蔽且传输量大,一般工具都是POST方式传参,所以一句话一般写_POST,把这个一句话木马挂到一个网页上,用‘菜刀’连接这一句话木马,一旦它运行,凭借这一句话木马就可以获取网站的管理权限。

由上可知,我们需要看其post,直接追踪http流

image-20211207222718294

发现了好东西!


佛系青年

压缩包直接打不开?爆破不显示文件?

image-20211207180029534

应该是伪加密吧。

image-20211207180229245

果然是!

提取压缩包之后,我们发现有文本文件

image-20211207180421933

与佛论禅!!!

image-20211207180357026

论完了,出来了


你猜我是个啥

压缩包打开显示格式错误,直接上010堪堪,惊喜出现了!

image-20211207225626941

神奇的二维码

这个题…恶心人!!!QQ图片20211208174259

先扫描神奇的二维码

image-20211208174423132

嗯,神奇之处其在于它一点都不神奇,010无事,上binwalk

image-20211208174527193

提取出来之后(做完再写的wp,可能有的删了)

image-20211208174557025

encode内容如下:

YXNkZmdoamtsMTIzNDU2Nzg5MA==

明显的base64,解码如下:

asdfghjkl1234567890

用这个我们能解压出另一个文件(好像是文档?)

然后最讨厌的第一个地方来了,里面是一段超~长的base64,接下来解码极其烦人,大约套了20层,下面展示两张

第一张图片显示不出时显示的文字
第二张图片显示不出时显示的文字

出来的——还不是flag!!!QQ图片20211208174259

解压音频文件,au一看

image-20211208180058079

呦,这不是最——最讨人厌的摩斯吗???!!!🐶

消耗眼睛手打

–/—/.-./…/./…/…/…-/./.-./-.–/…-/./.-./-.–/./.-/…/-.–

网站解码即可,flag出现!!!

morse2ascii

看wp时发现,大佬是这样做的:

image-20211208180416334

BASECRACK!

原来有个工具叫basecrack!!!

image-20211209224015724


一叶障目

解压文件后,PNG图片能够正常打开,属性也没问题,用010堪堪

提示这个

image-20211209083542429

经查找,发现这个错误一般都是修改宽高造成的,所以我们修改宽高

image-20211209083922329

ok


just_a_rar

解压——爆破——解压——属性——flag


鸡你太美

下下来之后,发现两个后缀都为gif的附件,属性没有问题,打开010查看,发现副本报错,因为都是gif文件,对比后发现副本没有文件头,添加上去,即可

image-20211211101258140


穿越时空的思念

拖入au

image-20211210202502628

思路一:不就是摩斯?直接手打,解码即可

思路二:分离声道,kali分析(没想起来,做完看的WP哈哈哈)

image-20211210202647450


纳尼

属性无问题,文件打不开,堪堪010,果然,缺少文件头,补上,可以打开。

6

动图内容如下

Q1RGe3dhbmdfYmFvX3FpYW5nX2lzX3NhZH0=

明显的base64,解码即可

image-20211211102340120


outguess

outguess

安装:

git clone https://github.com/crorvick/outguess]

cd进文件夹

./configure && make && make install

使用:

outguess -k 密钥 -d 文件名 存放文件

下载下来之后先看属性,

image-20211210210914672

明显的社会主义核心价值观编码

image-20211210210950958

经过查找后,我们发现outguess是一种隐写方式

image-20211210211102425


excel爆破

直接打开文件显示需要密码,选择改变文件后缀名,打开txt,发现内容不少

直接搜索flag,查到

image-20211214143625902


[HBNIS2018]来题中等的吧

image-20220125213501607

很明显是摩斯码,解码

image-20220125213536468

大写不行,试了试小写的,就过了。。。


[GXYCTF2019]gakki

图片本身什么注意点,binwalk提取压缩包,爆破四位弱密码,得到如下

image-20220125222617317

木大思路,慕达思路!!!!!!最后得知了是用字符统计

字符统计

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+- =\\{\\}[]"
string = open('./flag.txt').read()

result = {}
for i in alphabet:
counts = string.count(i)
i = '{0}'.format(i)
result[i] = counts

res = sorted(result.items(), key = lambda item: item[1], reverse = True)
for data in res:
print(data)

for i in res:
flag = str(i[0])
print(flag[0], end = "")

[WUSTCTF2020]find_me

附件属性,盲文解密,pass


[ACTF新生赛2020]base64隐写

扫码,无用,看,文档,base64,隐写,上,脚本(大佬写的)

base64

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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('3.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()

[SWPU2019]伟大的侦查

压缩包的密码文件可以解压,打开发现

image-20220127194053640

010改改编码多看几次,最后发现是EBCDIC

image-20220127194451453

解压出如图图片,《跳舞的小人》

image-20220127194736976

让我们打开《福尔摩斯》,开始解密!

image-20220127195058893

最后解出来为

flag{iloveholmesandwllm}


[GUET-CTF2019]KO

打开之后是ook编码,直接解码即可

image-20220127195622220

网址:

https://www.splitbrain.org/services/ook


黑客帝国

打开文件,发现rar文件头

image-20220127200537552

直接改后缀打开报错,在经过查询之后(太菜了对博起😭),错因如下(大佬写的!)

没有完全理解编码,txt上显示的数字与010中显示的十六进制是不一样的。010中的编码是将txt中的内容用Ascll码编码后的结果,如图:txt中显示的52617221到了010中编码为35 32 36 31 37 32 32 31。而文件头是指转换为16进制Ascll码后的数值。所以,本题应该将txt写入rar文件。

写入脚本如下:

1
2
3
4
5
6
7
8
9
10
import struct

a = open("hei.txt","r")#十六进制数据文件
lines = a.read()
res = [lines[i:i+2] for i in range(0,len(lines),2)]

with open("hei.rar","wb") as f:
for i in res:
s = struct.pack('B',int(i,16))
f.write(s)

爆破出来的压缩包密码

image-20220127201444016

打开后是一个无法直接打开的png图片,010打开后,直接搜索没有搜到有效信息,仔细观察16进制,头不对尾,

image-20220127201954741

我们将文件头改为jpg的之后,

image-20220127202007347

就可以成功打开了

image-20220127202035558