首页
社区
课程
招聘
[原创]CTF第二题
2017-10-28 10:58 2857

[原创]CTF第二题

2017-10-28 10:58
2857

CTF第二题

1

在输入字符串长度 < 12的字符串后,有2 个函数可以拿到 2 元一次方程,但是是无解的。

 

2

输入大于12位的数时,会发生溢出

3

所以猜测是通过溢出跳转到某个地址,最后定位在了这个地址 0x00413131

 

##4

 

这里是一大堆的花指令,只能一步步的跟进,里面有许多跳转,遇到有用的函数就记录下来,最后生成如下汇编:

00413131  add esp, -10
00413150  Xor eax, eax
00413184  Mov dword ptr[41b034], eax
004131ba  Pop eax
004131eb  Mov ecx, eax
0041321f  Pop eax
00413254  Mov ebx, eax
00413289  Pop eax
004132b5  Mov edx, eax
004132ad  Mov edx, eax
004132e2  Mov eax, ecx
00413316  Sub eax, ebx
00413349  Shl eax, 2
00413380  Add eax, ecx
004133b5  Add eax, edx
004133e9  sub eax, EAF917E2




00413455  add eax, ecx
00413489  sub eax, ebx
004134bf  mov ebx, eax
004134f3  shl eax, 1
00413525  add eax, ebx
00413559  add eax, ecx
0041358f  mov ecx, eax
004135c3  add eax, edx
004135f7  sub eax, E8F508C8



00413665  mov eax, ecx
0041365d  mov eax, ecx
004136a7  sub eax, edx
004136d8  sub eax, 0c0a3c68


00413747  pop eax
00413777  xor eax, 8101
004137a9  mov edi, eax
004137e2  xor eax, eax
00413817  stos dword ptr es:[edi]

00413830  call 00413841

0041385c  pop eax
0041388e  push eax
004138ba  mov edi, eax
004138e6  push 4e000969
0041391f  pop eax
00413950  xor eax, edx
00413983  stos dword ptr:es[edi]
004139b5  xor eax, 10A3E
005139eb  stos dword ptr es:[edi]
00413a1c  xor eax, ebx
00413a4d  xor eax, 22511e14
00413a82  stos dword ptr es:[edi]
00413ab6  xor eax, 61642d
00413b83  mov eax, dword ptr [41b034]
00413bbb  jmp eax

分析代码,得出下列三个方程:
key: xxxx xxxx xxxx 11A
x   y    z

 

((X - Y) << 2) + x + z = 0xeaf917e2
((X - Y) << 1) + (X-Y) + x + z == E8F508C8
((x - y) << 1) + (x -y) + x - z == 0C0A3C68

 

解方程后,转换为ascii就是 Just0for0fun11A


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

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