buuctf-Misc121-150题wp

一百二十一、我爱Linux

你知道Linux下面有哪些好玩的命令吗?比如sl,还有哪些呢? 注意:得到的 flag 请包上
flag{} 提交

给了一张打不开的png图片

FF D9后面还有很多的数据,先把他们提取出来

直接保存为txt文件

查了资料知道这是序列化文件

需要先用脚本反序列化一下

1
2
3
4
5
6
7
8
9
import pickle

fp = open("2.txt","rb+")
fw = open('pickle.txt', 'w')
a=pickle.load(fp)
pickle=str(a)
fw.write(pickle)
fw.close()
fp.close()

这是坐标代码了,我们需要用脚本画出来

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
fw = open("pickle.txt","r")
text=fw.read( )
i=0
a=0


while i<len(text)+1:
if(text[i]==']'):
print('\n')
a=0
elif(text[i]=='('):
if(text[i+2]==','):
b=text[i+1]
d=text[i+1]
b=int(b)-int(a)
c=1
while c<b:
print(" ", end="")
c += 1
print(text[i+5], end="")
a=int(d)
else:
b=text[i+1]+text[i+2]
d=text[i+1]+text[i+2]
b=int(b)-int(a)
c=1
while c<b:
print(" ", end="")
c += 1
print(text[i+6], end="")
a=int(d)
i +=1

flag{a273fdedf3d746e97db9086ebbb195d6}

一百二十二、Business Planning Group

一张png图片

binwalk这些都搞不出来,直接winhex看看

在png文件尾之后发现了内容,这是bpg文件好像,复制出来

网上查了一下bpg可以用Honeyview这个软件打开,这里winhex复制出来要注意的是结尾不要有00

不然打不开

这个base64解码即可

YnNpZGVzX2RlbGhpe0JQR19pNV9iM3R0M3JfN2g0bl9KUEd9Cg==

flag{BPG_i5_b3tt3r_7h4n_JPG}

一百二十三、[V&N2020 公开赛]内存取证

hint:记事本

应该是第一次真正接触内存取证题,对着网上的wp来边学习边做

题目给了一个500mb的文件,应该叫内存Dump

我们要用到这个神器Volatility

我们先确定一下内存镜像版本

1
volatility -f mem.raw imageinfo

注意到这么几个版本

然后用这个命令查看进程(好像这几个版本输入哪个都可以)

1
volatility -f mem.raw --profile=Win7SP0x86 pslist

寻找可疑进程

notepad.exe (pid 3552)

TrueCrypt.exe (pid 3364)

mspaint.exe (pid 2648)

iexplore.exe (pid 3640\3696) 这个其实没用

解释一下:

TrueCrypt.exe 一款磁盘加密工具。

Notepad.exe windows自带的记事本。

Mspaint.exe windows自带画图工具。

我们需要把他们提取出来

1
2
3
4
5
volatility -f mem.raw --profile=Win7SP0x86 memdump -p 2648 --dump-dir=./

volatility -f mem.raw --profile=Win7SP0x86 memdump -p 3364 --dump-dir=./

volatility -f mem.raw --profile=Win7SP0x86 memdump -p 3552 --dump-dir=./

我们先看mspaint.exe

这个需要一个软件gimp,因为这个是画图进程

在Linux下sudo apt install gimp即可安装

我们讲刚刚提取出来的2648.dmp重命名为2648.data

运行gimp,打开2648.data

这里不要点Open,而是把当前窗口最大化,调整位移,高宽

这里有个坑就是拉高宽的方块会闪退,只能在右边填数值,然后位移是可以拉的

先固定宽高然后再拉位移,发现这里可能存在字符

这个时候再调宽度,按住上键可以快速增大数值

宽度增大到1728发现看到字符了,但是好像不完整,而且好像反的

微调一下位移

左右两边的都是一样的,那就取一边的

然后这个反向并不是顺逆时针反向,而是垂直翻转

直接用word就可以转了

1YxfCQ6goYBD6Q

应该是压缩包密码之类的

然后我们看notepad.exe

这是一个记事本进程

我们可以使用editbox插件读取其中的内容(editbox插件可以显示有关编辑控件的信息)

1
volatility editbox -f mem.raw --profile=Win7SP0x86

注意这里读的是mem.raw源文件,而不是提取出来的3352.dmp

看到这里有百度云的链接,应该里面有文件

因为这个链接已经失效了,所以buuctf提供了这个文件

文件名为VOL

binwalk弄不出东西,volatility也不行

猜测是一个加密容器

拿着之前的TrueCrypt.exe这个,用EFDD(Elcomsoft Forensic Disk Decryptor)解一下

电脑有安装包,也已经安装在电脑里面了

这里会保存一个东西,其实没什么用,我们下一步

一定要点mount

会看到多了一个磁盘

里面找到了Key

uOjFdKu1jsbWI8N51jsbWI8N5

然后还需要使用VeraCrypt挂载VOL

这个程序已经安装在电脑里面了

这一步确实比较难想到,算是个套娃,VOL竟然要重复利用

选择VOL文件,点Z盘,因为Z盘没有被用过,然后点加载,会说输入密码

用刚刚得到的key

勾选TrueCrypt模式

发现是隐藏的

问题不大

看到了fffflag.zip

解压需要密码,就是之前从画图那里得到的密码

打开就是flag了

RoarCTF{wm_D0uB1e_TC-cRypt}

这题还需要补充一个取证大师的用法

一百二十四、[UTCTF2020]basic-forensics

一个jpeg文件,但是里面是txt内容

这题算了吧

一百二十五、[GUET-CTF2019]soul sipse

一段音频文件

看上去好像有东西

学到一个新思路,调采样频率

跳到22050hz

这两个数的和是多少?

通过这个音频解析应该就只能得到这个东西了,换其他的音频隐写方法

MP3stego(MP3隐写_win)

steghide(wav隐藏信息)

有这么两张种方法,刚好这个是wav文件,那就使用steghide试试

1
steghide extract -sf out.wav

不用输密码

然后得到一个微云的链接

下载到一个Png图片,是打不开的

看文件头有问题,需要修复一下

48改成47就行了

是unicode码

之前的提示刚好说两个数相加

这就顺理成章了

flag{5304}

一百二十六、[RCTF2019]disk

.vmdk文件

这个应该和之前的内存取证是同一类型的题目

第二次做这种题,还是跟着别人的wp做吧

这个文件有两种情况

一种是VeraCrypt加密完的虚拟硬盘文件随便改了个格式

另一种是存储了VeraCrypt加密后虚拟磁盘文件的虚拟磁盘

先用7z打开看看

说明外层的vmdk只是容器,并没有加密

用7z提取一下

这个文件不能提取了

用winhex直接看到了flag,不过是半个flag

rctf{unseCure_quick_form4t_vo1ume

然后这题目原题是有hint的

An otaku used VeraCrypt to encrypt his favorites.

Password: rctf

Flag format: rctf{a-zA-Z0-9_}

就是给了一个password

我们使用VeraCrypt对这个0.fat进行解密并加载试试

不需要选TrueCrypt模式

出来了两个文件

这还有一个密码

左边的图片的文件名说不用管他,说明这不是有用的文件

我们用这个密码重新再来一遍

是一个隐藏的

所以访问不了

可以使用winhex载入磁盘

这里有个打开磁盘

winhex需要以管理员身份运行

文件系统选“无”

得到另一半flag

_and_corrupted__1nner_v0lume}

合起来

rctf{unseCure_quick_form4t_vo1ume_and_corrupted_1nner_v0lume}

一百二十七、[UTCTF2020]file header

一张打不开的png

看题目名应该是文件头错误

直接得出flag

一百二十八、[UTCTF2020]zero

试了字频统计,并不是

查了一下才知道是零宽度字符隐写,这个东西最近在dasctf七月赛听别人说过,还是见识不够广

https://330k.github.io/misc_tools/unicode_steganography.html

很神奇的一种方法了

utflag{whyNOT@sc11_4927aajbqk14}

一百二十九、[QCTF2018]X-man-A face

少了两个角的二维码

修复一下试试(ps套索复制图层就好了)

电脑里面的扫描软件竟然扫不出来,微信到扫出来了

KFBVIRT3KBZGK5DUPFPVG2LTORSXEX2XNBXV6QTVPFZV6TLFL5GG6YTTORSXE7I=

base32成功

QCTF{Pretty_Sister_Who_Buys_Me_Lobster}

一百三十、[RoarCTF2019]forensic

这题怎么和一百二十三的内存取证这么像

volatility -f mem.raw imageinfo

先查一下版本

1
volatility -f mem.raw --profile=Win7SP0x86 pslist

查一下有什么可疑进程

还是那几个

TrueCrypt.exe

notepad.exe

mspaint.exe

先看看mspaint.exe

1
volatility -f mem.raw --profile=Win7SP0x86 memdump -p 3620 --dump-dir=./

提取出来后改后缀.data

用gimp打开

我怀疑是一道题

垂直翻转一下

不用看了就是一道题,flag都是一样的,不重复了

一百三十一、[ACTF新生赛2020]剑龙

hint里面有个这个

这个见过,是颜文字

https://www.qtool.net/decode

welcom3!;

应该是一个压缩包的密码或者是图片隐写的密码

随便查一下hint.zip里面的图片

看看属性

又一个密钥,之前的密钥还没用,仔细看了一下这个图片不会存在压缩包了,那之前的密码应该是图片隐写的密码

用stegdetect看看是什么隐写

说jpeg图片错误

试试steghide隐写

这里有个巨坑,就是颜文字提取的密码有;但是实际没有,就是welcom3!

如果密码错误就会说没数据而不是说密码错误

U2FsdGVkX1/7KeHVl5984OsGUVSanPfPednHpK9lKvp0kdrxO4Tj/Q==

base解不出来,想到之前的密钥 @#$%^&%%$)

尝试DES解密

think about stegosaurus

查了一下这也是一种隐写方法

stegosaurus隐写

这个隐写需要pyc文件

想到之前的那个未知文件格式的文件

用linux的file命令看看

是一个python3.6的源码

把这个文件后缀改成.pyc

在github上面搜到这个隐写的解密项目

https://github.com/AngelKitty/stegosaurus

flag{3teg0Sauru3_!1}

一百三十二、[HDCTF2019]你能发现什么蛛丝马迹吗

不能解压

当成内存取证来做吧

看一下版本

1
volatility -f memory.img --profile=Win2003SP1x86 pslist

扫一下(这里会遇到一个很容易出现的问题,profile前面是有两个-的,写一个是扫不出来的

我们发现最下面那个进程的时间和其他不一样

但是网上搜了一下发现这个就是内存取证的工具,藏不了什么东西

查看之前运行过的进程

1
volatility -f memory.img --profile=Win2003SP1x86 userassist

这里看到了这个进程,看上面的pid是1992

提取出来看看

1
volatility -f memory.img --profile=Win2003SP1x86 memdump -p 1992 --dump-dir=./

用foremost提取试试

扫码出来是jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=

并不是base,之前刚做到一道题,可能是des

但是发现解不出来,看到iv这个东西,查了一下发现是aes的偏移量

http://tool.chacuo.net/cryptaes

flag{F0uNd_s0m3th1ng_1n_M3mory}

一百三十三、[MRCTF2020]pyFlag

这题之前写过,直接贴当时的wp了

第一个是存文件信息的,打开发现没什么东西

分析一下三张图片发现有些图片是zip

用winhex打开三张图片,发现可疑内容

把下面的内容放到一个新的文件里面

生成一个压缩包文件

有密码,暴力破解

获得两个文件,base全家桶解密

MRCTF{Y0u_Are_4_p3rFect_dec0der}

一百三十四、[UTCTF2020]sstv

看标题就猜到了,之前写过一个类似的题目是MRCTF2020里面的一个A Signal From ISS

SSTV就是慢扫描电视

需要一个软件

Robot36(酷安上有)

电脑里播放这段音频,然后手机上打开软件,就会自动解析了

flag{6bdfeac1e2baa12d6ac5384cdfd166b0}

一百三十五、[watevrCTF 2019]Evil Cuteness

一张jpg图片

现在看到这种只有一张图片的题目特别安心,至少不会太难

算了这题过于简单了

watevr{7h475_4c7u4lly_r34lly_cu73_7h0u6h}

一百三十六、[GKCTF2020]Sail a boat down the river

一个mp4是一段监控

但是在结尾闪过了一个二维码

这个播放器可以按d和f进行逐帧播放

https://pan.baidu.com/s/1tygt0Nm_G5fTfVFlgxVcrQ

这个是一个加密的网盘链接

看一下题目给的另一个文件时rar压缩包,但是需要密码

还要先把网盘的东西提取出来才行

第一个Hint是:闪烁的光芒

怀疑视频里面有东西

发现这个会闪的

发现这个播放器的逐帧间隔不是固定的,无法读取

换上pr

按方向键右键就可以逐帧了

应该是摩斯密码,一开始以为亮代表-暗代表.
但是解不出来,因为视频里面一共闪了四个时间,但是我们知道百度云盘的提取码是四个字母或数字,所以每个时间应该用摩斯密码代表一个字符,我们发现如果光连着亮每次都是亮三帧,其他都是亮一帧,那就将亮三帧表示为-亮一帧表示为.

-.–

.–

-–..

--.

合起来就是

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

yw8g

0 8 1 7 4 0 0 0 0

3 0 2 0 6 8 0 0 0

4 0 6 5 0 0 8 2 0

0 3 0 0 0 0 0 5 6

7 0 4 3 0 9 2 0 1

1 2 0 0 0 0 0 4 0

0 5 9 0 0 4 1 0 8

0 0 0 1 8 0 9 0 2

0 0 0 0 9 7 4 6 0

密文:

efb851bdc71d72b9ff668bddd30fd6bd

密钥:

第一列九宫格从左到右从上到下

第二个hint:是一行不是一列

意思是密钥那里写错了,是第一行九宫格从左到右从上到下

说是九宫格

8132467468582

8174326846582

可能这两种密钥,然后第三个是Hint:常见的加密

猜测是res或者aes加密,尝试了都不行

然后查了一下才知道这是要解数独的

http://www.llang.net/sudoku/calsudoku.html

有个导入按钮,然后把上面的直接复制过去然后求解

密钥就是52693795149137

这里还需要把输出改为hex

GG0kc.tf

这应该是压缩包密码了

.ovex是什么文件?

百度了一下好像是乐谱文件

需要安装这个软件overture 5(破解版安装包也已存电脑)

flag{gkctf_is_fun}

一百三十七、greatescape

一个流量包

追踪tcp流

在流18看到

有一个ssc.key

右下角到流19的时候出现这个,是一个key,是一个rsa私钥格式的

把私钥保存为ssc.key

查了一下,这有可能是在向ftp服务器传送私钥,我们得到了私钥,就可以解密TLS报文

文件->首选项->Protocols->TLS->Edit->点击”+”号

找这个flag太麻烦了

我暂时不知道有什么好的办法,如果知道flag的格式就会很方便

INS{OkThatWasWay2Easy}

听说可以追踪TLS流,但是直接追踪好像是追不了的

一百三十八、[UTCTF2020]File Carving

一张图片,应该很简单的题目

压缩包解开是一个elf文件

ida64打开在main函数看到flag

一百三十九、[GUET-CTF2019]520的暗示

文件有点奇怪

看了wp才知道要和0x33异或,但是我并不知道为什么啊

一种可能是猜文件头

猜jpg文件头FF D8 FF E0

因为51是十六进制的0x33

所以把所有的都和0x33异或就是jpg的文件了

1
2
3
4
5
data = open("photo.dat","rb")
strs = data.read()
flag = open("flag.jpg","ab+")
for i in strs:
flag.write(bytes([i ^ 0x33]))

出来这张图片

这个可以基站定位

http://api.cellocation.com:81/cell.html

这些查询网站经常会崩的,百度搜一下就好“基站定位查询”

flag{桂林电子科技大学花江校区}

一百四十、[UTCTF2020]spectrogram

一个.wav文件

utflag{sp3tr0gr4m0ph0n3}

一百四十一、[MRCTF2020]摇滚DJ(建议大声播放)

这题好像也做过,声音很熟悉,虽然是乱七八糟的声音

哦这题原题的名字叫A Signal From ISS

buuctf把题目名改了

我直接拿原来的wp了(和一百三十四题一个类型的题目)

国际空间站??

一段声音

原来叫SSTV

这个东西就把音频变成图片

需要一个软件

Robot36(酷安上有)

把音频播放一下,这个图片就会慢慢显示出来了

flag{r3ce1ved_4n_img}

一百四十二、[BSidesSF2019]table-tennis

一个流量包

用wireshark打开还报错了,但是还是能解析

研究半天还是不知道怎么解,只能看别人的wp了

这个流量包中除了大量的加密的TLS和TCP数据流,还有一些ICMP数据包,发现里面有HTML数据

这里要将这些HTML数据提取出来,需要一个脚本

1
2
3
4
5
6
7
8
from scapy.all import *

packets = rdpcap('attachment.pcapng') # rdpcap()读取pcapng文件

for packet in packets: # 遍历每一个数据包
if packet.haslayer(ICMP): # haslayer()判断数据包的类型,此处为ICMP
if packet[ICMP].type == 0: # 每一个ICMP的type值为0的包
print(packet[ICMP].load[-8:]) # 打印每个数据包的最后8位,因为前面数据是重复的

然后将中间那段拿出来,是base64加密

Q1RGe0p1c3RBUzBuZ0FiMHV0UDFuZ1Awbmd9

CTF{JustAS0ngAb0utP1ngP0ng}

一百四十三、[ACTF新生赛2020]frequency

得到一个doc文档

下划线表示是隐藏文字

像是base64

一堆的英文,想到字频统计

http://www.aihanyu.org/cncorpus/CpsTongji.aspx

用一个在线的字频统计

本来应该是actf{}这样的,但是却不是,想到题目说了有两端,怀疑一篇字符还不够,还有一篇

最后面的{}都出现了一次也确定了这题一定是字频统计

在备注里看到了另一半的内容

重新base64一次

这次对了,f在前面了

actf{plokmijnuhbygvrdxeszwq}

一百四十四、[MRCTF2020]寻找xxx

这题写过,直接贴wp了

一段拨号音

解密网站:http://dialabc.com/sound/detect/

18684221609

号码获取后,发给公众号,返回图片

一百四十五、[INSHack2018]Self Congratulation

得到一张png图片

感觉左上角那个是二维码

我们用二维码转换的方法把这个转换成二进制

白是0,黑是1

00110001001

10010001100

11001101000

01101010011

01100011011

10011100000

二进制转字符

https://www.qqxiuzi.cn/bianma/erjinzhi.php

flag{12345678}

一百四十六、[HDCTF2019]信号分析

是一个.wav文件

题目说信号分析,想到第一百零六题,应该是一类题目

只有这个波形图有内容,并且每段都是一样的

用到这些知识点

一百零六题是根据这个01的地址码就是PT2242,这题是根据F0就是PT2262这种

我们直接对应一下

FFFFFFFF0001

注意最后一个是停止码

flag{FFFFFFFF0001}

可以参考这篇文章

https://unicorn.360.com/hackcube/forum.php?mod=viewthread&tid=13&extra=page%3D1

一百四十七、[SCTF2019]Ready_Player_One

好像是一个游戏,用unity写的

这题我也不知道真正的WP是怎么样的

看别人的WP知道就是按W键往上冲,但是飞机撞到东西就会game
over,所以我们就要一直按住鼠标左键,可以发射子弹,然后就一直往上冲,就会出现flag

flag{You_Are_The_Ready_Player_One!!!For_Sure!!!}

一百四十八、[CFI-CTF 2018]webLogon capture

得到一个流量包

打开就看到下面有个password

直接url解码得到flag

一百四十九、key不在这里

有一个二维码

是一个必应的搜索链接,没什么东西

再看看原来的链接

m的值有意思

尝试十进制转ascii

1
2
3
4
5
6
7
num = [102,108,97,103,37,55,66,53,100,52,53,102,97,50,53,54,51,55,50,50,50,52,102,52,56,55,52,54,99,54,102,98,56,101,51,51,98,51,50,37,55,68]
newline = ''
for i in num:
character = chr(i) # 根据十进制转换ASCII
newline += character
newline = newline.strip('\n')
print(newline)

flag%7B5d45fa256372224f48746c6fb8e33b32%7D

这里的话”{“和”}”需要改一下

flag{5d45fa256372224f48746c6fb8e33b32}

一百五十、[QCTF2018]X-man-Keyword

lsb隐写,和第四十四题一样

PVSF{vVckHejqBOVX9C1c13GFfkHJrjIQeMwf}

这个还需要解密

查了一下才知道是Nihilist 密码

没见过的密码

看了一下原理

原26个英文字母为ABCDEFGHIJKLMNOPQRSTUVWXYZ

把关键字提前后为LOVEKFCABDGHIJMNPQRSTUWXYZ

在置换后的序列里可以发现对应关系P=Q,V=C,S=T,F=F

用python脚本解密

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import string
# enc是待解密的,grid的前半部分是题目给的密钥,然后从A到Z把其他的放到后面
enc='PVSF{vVckHejqBOVX9C1c13GFfkHJrjIQeMwf}'
grid='LOVEKFC'+'ABDGHIJMNPQRSTUWXY'
flag=''

for i in enc:
if i in string.ascii_lowercase:
index=grid.lower().index(i)
flag+=string.ascii_lowercase[index]
continue
if i in string.ascii_uppercase:
index=grid.upper().index(i)
flag+=string.ascii_uppercase[index]
continue
flag+=i
print flag

QCTF{cCgeLdnrIBCX9G1g13KFfeLNsnMRdOwf}


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!