Start
IDA,Shift+F12
文章图片
跟进去,交叉引用
文章图片
F5来到该函数
文章图片
关键处
文章图片
sub_424BA0
可以看出应该是strlen
,先判断v53
的长度是不是36
位,之后作为for
循环推出的条件。
每一次都会对v53
的单个字符与i
进行异或之后判断是否等于下面这一串中的值
文章图片
写出脚本:
文章图片
得到第一条信息,the first four chars are 'flag'
continue: 【CTF|BUUOJ [2019红帽杯]easyRE】
文章图片
对v56
调用了10次sub_400E44
进行处理,最后与off_6CC090
进行sub_400360,根据经验,sub_400360
应该就是strcmp
off_6CC090:
文章图片
文章图片
来到sub_400E44
文章图片
这里if
就是判断v1
是否等于39
, 条件成立,v2 = 13
之后进入while
循环,每次循环都对a1
中的三个值进行运算,之后存到v9
中
文章图片
到这里,大概可以看出是一种加密算法。根据最终的结果,猜测应该就是base64加密,并且加密了10次,
将数据整理之后变成了
Vm0wd2VHUXhTWGhpUm1SWVYwZDRWVll3Wkc5WFJsbDNXa1pPVlUxV2NIcFhhMk0xVmpKS1NHVkdXbFpOYmtKVVZtcEtTMUl5VGtsaVJtUk9ZV3hhZVZadGVHdFRNVTVYVW01T2FGSnRVbGhhVjNoaFZWWmtWMXBFVWxSTmJFcElWbTAxVDJGV1NuTlhia0pXWWxob1dGUnJXbXRXTVZaeVdrWm9hVlpyV1hwV1IzaGhXVmRHVjFOdVVsWmlhMHBZV1ZSR1lWZEdVbFZTYlhSWFRWWndNRlZ0TVc5VWJGcFZWbXR3VjJKSFVYZFdha1pXWlZaT2NtRkhhRk5pVjJoWVYxZDBhMVV3TlhOalJscFlZbGhTY1ZsclduZGxiR1J5VmxSR1ZXSlZjRWhaTUZKaFZqSktWVkZZYUZkV1JWcFlWV3BHYTFkWFRrZFRiV3hvVFVoQ1dsWXhaRFJpTWtsM1RVaG9hbEpYYUhOVmJUVkRZekZhY1ZKcmRGTk5Wa3A2VjJ0U1ExWlhTbFpqUldoYVRVWndkbFpxUmtwbGJVWklZVVprYUdFeGNHOVhXSEJIWkRGS2RGSnJhR2hTYXpWdlZGVm9RMlJzV25STldHUlZUVlpXTlZadE5VOVdiVXBJVld4c1dtSllUWGhXTUZwell6RmFkRkpzVWxOaVNFSktWa1phVTFFeFduUlRhMlJxVWxad1YxWnRlRXRXTVZaSFVsUnNVVlZVTURrPQ==
拿去base64解密,刚好解了10次,得到一个网址
文章图片
所以发现这里是个坑,这里不是正确的flag, 翻了一下官方的wp才知道,这个字符串是关键,当时看到
off_6CC090
的时候并没有在意文章图片
试着交叉引用
文章图片
这里对
byte_6CC0A0[0]
和byte_6CC0A3
与v2
的第一个字符和第四个字符异或之后进行了判断也就是第一个字符和第四个字符进行判断,根据之前得到的flag
前四个字符是flag
文章图片
通过该循环可以发现,
v2
4字节的数,并且是随机获取的,但可以通过if
条件里面的语句反推出v2的值文章图片
if
里面的for
循环,这里每一次异或得到的值就是真正的flag
文章图片
exp.py
s1 = 'flag'
v2 = []
flag = ''
enc = [0x40,0x35,0x20,0x56,0x5D,0x18,0x22,0x45,0x17,0x2F,0x24,0x6E,0x62,0x3C,0x27,0x54,0x48,0x6C,0x24,0x6E,0x72,0x3C,0x32,0x45,0x5B]
for i in range(4):
v2.append(enc[i] ^ ord(s1[i]))for i in range(len(enc)):
flag += chr(v2[i % 4] ^ enc[i])# flag{Act1ve_Defen5e_Test}
总结:
这道题坑的地方就在于,不知道踩坑了,也不知道是base64加密,然后就去疯狂的逆算法,最后发现是个坑,hhhhhh,考的是心态
End
推荐阅读
- 解护网杯一道web(EasyChallenge)
- ctf|ctf-htctf-misc
- C++|一些关于程序内存布局的问题
- QCTF 2018xman夏令营选拔赛
- 第一届桂林电子科技大学绿盟杯CTF大赛 wp
- Capture the flag
- Buuctf -web wp汇总(二)
- #|CTF-网络信息安全攻防学习平台(脚本关)
- ctf