首页
社区
课程
招聘
[原创][2021][KCTF]第八题 众叛亲离wp
2021-5-23 14:01 3107

[原创][2021][KCTF]第八题 众叛亲离wp

ccfer 活跃值
16
2021-5-23 14:01
3107

定位输入:

00402E75  PUSH 蓝色窗帘.004253CC                   ; ASCII " name:"
00402E7A  CALL 蓝色窗帘.0041C33F
00402E7F  PUSH 蓝色窗帘.00425490
00402E84  LEA EAX,DWORD PTR SS:[ESP+478]
00402E8B  PUSH 11
00402E8D  PUSH EAX
00402E8E  CALL 蓝色窗帘.0041C22F                   ;读取name
00402E93  PUSH 蓝色窗帘.00425490
00402E98  CALL 蓝色窗帘.0041C122
00402E9D  PUSH 蓝色窗帘.004253C0                   ; ASCII " serial:"
00402EA2  CALL 蓝色窗帘.0041C33F
00402EA7  PUSH 蓝色窗帘.00425490
00402EAC  LEA ECX,DWORD PTR SS:[ESP+4AC]
00402EB3  PUSH 28
00402EB5  PUSH ECX
00402EB6  CALL 蓝色窗帘.0041C22F                   ; 读取serial
00402EBB  PUSH 蓝色窗帘.00425490
00402EC0  CALL 蓝色窗帘.0041C122
00402EC5  LEA EDI,DWORD PTR SS:[ESP+4B8]
00402ECC  OR ECX,FFFFFFFF
00402ECF  XOR EAX,EAX
00402ED1  ADD ESP,28
00402ED4  REPNE SCAS BYTE PTR ES:[EDI]
00402ED6  NOT ECX
00402ED8  DEC ECX
00402ED9  CMP ECX,20                         ; serial长度判断
00402EDC  JGE SHORT 蓝色窗帘.00402F14

定位结果判别:

0041A99C  XOR EAX,EAX
0041A99E  LEA ECX,DWORD PTR DS:[EDI+2011]
0041A9A4  POP EBP
0041A9A5  XOR EDX,EDX
0041A9A7  MOV DH,BYTE PTR DS:[ECX-1]      ; 当16字节结果是{0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7}就成功了
0041A9AA  MOV WORD PTR DS:[42803E],DX
0041A9B1  MOVZX SI,BYTE PTR DS:[ECX]
0041A9B5  OR DX,SI
0041A9B8  MOV WORD PTR DS:[42803C],AX
0041A9BE  CMP DX,AX
0041A9C1  MOV WORD PTR DS:[42803E],DX
0041A9C8  JNZ SHORT 蓝色窗帘.0041AA04
0041A9CA  INC EAX
0041A9CB  ADD ECX,2
0041A9CE  CMP EAX,8
0041A9D1  JL SHORT 蓝色窗帘.0041A9A5
0041A9D3  PUSH 蓝色窗帘.00425030         ; ASCII " right "
0041A9D8  CALL 蓝色窗帘.0041C33F

看起来像个虚拟机的,先试试有没有捷径

输入32个字符,16进制转成16个字节

首先测试一下相关性,改掉一个输入字节,发现最后结果也只改变一个字节,而且位置向对应

这就好办了,明显可以单字节逐个穷举,而且可以16个字节同时进行,最多256次循环搞定


最后得到:

85A4A5E45B3B9227E3FD715E80BC999B



[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2021-5-23 14:02 被ccfer编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回