buu-6

john-in-the-middle

跟流量包逐渐熟悉起来,感觉这个包的信息挺多

导出就对了(毕竟搜flag、john啥也没搜到)图片好几张,先观察一下

logo.png中间缺了一条

scanline???但是这张图是空的,难道拼起来???

stegosolve先打开logo然后和scanline拼起来,啊这,啥也没有,那换过来试试

好家伙,金色传说,flag有了

[WUSTCTF2020]爬

我一定要来吐槽一下这道题,把覆盖flag的图片和flag图片组合在一起,真的没想到

zip

这,这么多

每一个文件还都一样大,难道crc32碰撞?(略有耳闻,倒是第一次碰到)

打开一个看看,加密了,那应该是了

先研究一下原理https://preshing.com/20110504/hash-collision-probabilities/

https://blog.csdn.net/zz_Caleb/article/details/88852078

CRC32:CRC本身是“冗余校验码”的意思,CRC32则表示会产生一个32bit(8位十六进制数)的校验值。

在产生CRC32时,源数据块的每一位都参与了运算,因此即使数据块中只有一位发生改变也会得到不同的CRC32值,利用这个原理我们可以直接爆破出加密文件的内容

(来看一点看得懂的)

拿脚本跑吧

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
#python3
import zipfile
import string
import binascii

def CrackCrc(crc):
for i in dic:
for j in dic:
for k in dic:
for h in dic:
s = i + j + k + h
if crc == (binascii.crc32(s.encode())):
f.write(s)
return

def CrackZip():
for i in range(0,68):
file = 'out'+str(i)+'.zip'
crc = zipfile.ZipFile(file,'r').getinfo('data.txt').CRC
CrackCrc(crc)
print('\r'+"loading:{:%}".format(float((i+1)/68)),end='')

dic = string.ascii_letters + string.digits + '+/='
f = open('out.txt','w')
print("\nCRC32begin")
CrackZip()
print("CRC32finished")
f.close()

1
2
3
4
5
6
import base64

base64_text = open('out.txt','r').read()
byte_stream = base64.b64decode(base64_text)
open('new.txt','wb').write(byte_stream)

解开是缺失文件头的rar压缩包,补上文件头后,flag在备注里。

小易的U盘

iso文件,用记事本打开,发现是rar压缩包,同时有一堆和flag相关的文件

运行一下收获一个avi文件,但是根本打不开,010查看完发现全是f(脸黑

不如re一下那个副本程序?

等等怎么解压完程序显示不出来

原来如此,不过不影响ida使用,六十多个副本不会要我一个个看过去吧。。。。。。

好家伙,搜就完事

从娃娃抓起

两种汉字编码方式

数字的是中文电码,字母的是五笔输入法

[WUSTCTF2020]alison_likes_jojo

前面还挺顺利的,解出base,然后以为是flag,反复提交,发现不太对劲,少利用了一张图,outguess隐写,killerqueen是解密密码

[GUET-CTF2019]zips

前面正常爆破,伪加密还行,说说最后一步

过了很久很久我才意识到,出题人用时间轴加密,这个也是个爆破,再根据比赛时间推算了一下时间戳大概开头,用掩码爆破

百里挑一

我还真以为flag会在一张图里,结果在两张的图里。

先是直接在流量包搜索flag{找到了前面一半,后面找到了在90(1).jpg里,发现他写在备注里,然后搜索adobe,获得后半段flag(因为前半段flag和adobe段挺近的?我这什么清奇的思路

[MRCTF2020]千层套路

真正的套娃,这个套娃竟然套了六百多层,sos就离谱

密码就是压缩包文件名,手动解了快十个觉得事情不简单

1
2
3
4
5
6
7
8
import zipfile
name = '0573'
while True:
fz = zipfile.ZipFile(name + '.zip', 'r')
fz.extractall(pwd=bytes(name, 'utf-8'))
name = fz.filelist[0].filename[0:4]
fz.close()

解出来一个qr.zip里有个qr.txt,看来二维码得自己画了

1
2
3
4
5
6
7
8
9
10
11
12
from PIL import Image

x = y = 200
img = Image.new("RGB",(x,y))
file = open('qr.txt','r')

for width in range(0,x):
for height in range(0,y):
line = file.readline()
rgb = line.split(',')
img.putpixel((width,height),(int(rgb[0]),int(rgb[1]),int(rgb[2])))
img.save('flag.jpg')

[安洵杯 2019]Attack

在流量包里找到flag.txt的压缩包,但是压缩包加密了

难道是要密码?上网学习ing

在网上学习了一番后,知道了这是通过获取用户密码来解开压缩包

用到mimikatz获取明文密码,现在又需要lsass.dmp这个进程的内存

lsass是windows系统的一个进程,用于本地安全和登陆策略。

导出lsass.dmp文件

尝试使用mimikatz,很奇怪,怎么都打不开,各种打不开,各种拒绝访问,几个小时过去了,在确定自己的用户为管理员之后,把所有的杀毒软件关掉后,用管理员运行模式打开,img终于啊image-20210721234435678

debug检查一下

image-20210722001149114

image-20200918211554925

image-20210722000642035

image-20210722000755964

妙啊

不过mimikatz有时间还是要好好研究一下的

[XMAN2018排位赛]通行证

很明显的base64

很难想象,不同的栅栏密码解密出来的结果是不一样的,发一个能用的http://ctf.ssleye.com/railfence.html

然后凯撒移位,over

[WUSTCTF2020]girlfriend

打开音频,惯性摩斯电码,压根没听,直接转字母,发现,我转了个寂寞,后来才知道是电话拨号(这么多年了,这个音我还是听不出来,找个程序识别吧dtmf2num下载地址

image-20210722131151592

难道数字就是flag????

不像啊,这啥,什么和数字有关?手机键盘吧,试试(啊,竟然是按键机的玩法,直接九键完全不对

flag{youaremyfriends}

image-20200917152757024

笑了,改个系统时间就行

[SUCTF2018]followme

ctf搜不到就去搜flag,注意比赛的名称,有的时候不需要想得太复杂

docx

docx后缀改zip,找到media,打开会发现flag相关图片

[DDCTF2018](╯°□°)╯︵ ┻━┻

看图

image-20210723205551997