首页
论坛
课程
招聘
[原创] KCTF2021秋季赛 声名远扬 WP
2021-12-3 20:09 11581

[原创] KCTF2021秋季赛 声名远扬 WP

2021-12-3 20:09
11581

FindCrypto插件发现程序有CRC操作,main函数里那一堆花指令都没敢动。然后按钮点击函数不太好找,断GetWindowsText和SetWindowsText都不太好使,最后玄学通过代码段上一堆不知道什么东西的东西交叉引用定位到按钮点击函数Sub_41D2D0

 

 

点击函数里面先对输入做了变表base64操作,填充位换成了"!" 可以直接写IDAPython脚本把表爆出来

1
2
3
4
5
6
7
8
9
10
11
box = ""
cpu.eip=0xD4E7AE
for dl in range(64):
    cpu.edx=dl
    run_to(0xD4E7BD)
    wait_for_next_event(WFNE_SUSP, -1)
    print(dl, get_wide_byte(cpu.eax))
    box += chr(get_wide_byte(cpu.eax))
    cpu.eip=0xD4E7AE
print(box)
# prvo9CHSJOcPIb6xRVUXQz0qBGDE72LNZduaefYT5K_8-4FAhlimjkngt1yMWs3w

 

然后会通过call fword天堂之门跳到前面那段shellcode上去跑x64代码。

 


 

然后就是挂windbg对着IDA一步步调,最后发现直接就是比较,扣出正确的密文解就行了

 

 

1
2
3
4
5
6
7
8
9
10
11
import base64
fake_box = "prvo9CHSJOcPIb6xRVUXQz0qBGDE72LNZduaefYT5K_8-4FAhlimjkngt1yMWs3w"
box = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
ciper = "GYldGg-iIoJlPX9hPXpjPqfdEY21B01TBTzeGqfKNR!!".replace("!", '=')
flag_base64 = ""
 
ciper_list = list(ciper)
for i in ciper_list:
    flag_base64 += box[fake_box.find(i)]
print(flag_base64)
print( base64.b64decode(flag_base64.encode()) )

【公告】看雪团队招聘安全工程师,将兴趣和工作融合在一起!看雪20年安全圈的口碑,助你快速成长!

收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回