首页
论坛
课程
招聘
[原创]第二题 ctf2017_Fpc
2017-10-28 01:51 1626

[原创]第二题 ctf2017_Fpc

2017-10-28 01:51
1626

观察

regcode:
1234 5678 9abc
分别对应x y z
输入任意regcode,跟一下,发现是一个无解方程

 

然后上下拉一下,观察到可疑乱序代码,考虑使用栈溢出return过去
段首:00413131,对应11A结尾字符串,字符串长度15

 

ps.在考虑段首这里有过犹豫,如果定位在代码0041312F处,这样return进来的参数在乱序段末最终被xor为00401021,进而跳回原处几乎完美地继续执行,这样会导致无穷解的出现,不知是作者有意为之还是无意凑巧。

//无穷解(x为任意字符):
xxxxxxxxxxxx/1A

话说因为这个原因我还在想是不是题目有问题,后来观察了一下花指令才发现新东西

//还原的加花乱序
////////////////////////////////////////
 add esp,-0x10
 xor eax,eax
 mov dword ptr ds:[0x41B034],eax

 pop eax        //eax=x
 mov ecx,eax    //ecx=x

 pop eax        //eax=y
 mov ebx,eax    //ebx=y

 pop eax        //eax=z
 mov edx,eax    //edx=z
 mov edx,eax    
 mov eax,ecx    //eax=x
 sub eax,ebx    //eax=x-y
 shl eax,0x2    //eax shl 2
 add eax,ecx    //eax+=x
 add eax,edx    //eax+=z
 sub eax,0xEAF917E2 //(必须为零)
 add eax, ecx    //eax=x
 sub eax, ebx    //eax-=y
 mov ebx, eax    //ebx=(x-y)
 shl eax, 1        //eax shl 1
 add eax, ebx    //eax+=(x-y)
 add eax, ecx    //eax+=x
 mov ecx, eax    //ecx=eax
 add eax, edx    //eax+=edx
 sub eax, 0xe8f508c8 //(必须为零)
 mov eax, ecx    //eax=original
 mov eax, ecx
 sub eax, edx    //eax-=edx
 sub eax, 0xc0a3c68 //(必须为零)
 pop eax
 xor eax, 0x8101
 mov edi, eax
 xor eax, eax
 stosd dword ptr es:[edi], eax
 call 0x413841  //00413830 PUSH 00413835
 pop eax
 push eax
 mov edi, eax
 mov edi, eax
 push 0x4e000969
 pop eax
 xor eax, edx
 stosd dword ptr es:[edi], eax
 xor eax, 0x10a3e
 stosd dword ptr es:[edi], eax
 xor eax, ebx
 xor eax, 0x22511e14
 stosd dword ptr es:[edi], eax
 xor eax, 0x61642d
 xor eax, dword ptr [0x41b034]
 jmp eax
 ////////////////////////////////////////////

Algorithm:

((x-y) shl 2)+x+z==0xEAF917E2 3942193122‬
(x-y) shl 1 + (x-y) +x+z==0xe8f508c8 3908372680
(x-y) shl 1 + (x-y) +x-z==0xc0a3c68 201997416

 

z=1853187632=0x6e756630

 

4x-3y==3908372680-1853187632=2055185048
4(x-y)+x=5x-4y=3942193122‬-1853187632=2089005490
x -> 1953723722(0x7473754A), y -> 1919903280(0x726F6630)

Regcode:

x y z:
4A75737430666F723066756E
J u s t 0 f o r 0 f u n

Total:

Just0for0fun11A

后记

题目出的很有意思,可以看出出题人的水平,但是个人认为该题缺少相关必要描述导致了不必要的误解发生。。。
感谢出题者,感谢看雪平台。


[培训]12月3日2020京麒网络安全大会《物联网安全攻防实战》训练营,正在火热报名中!地点:北京 · 新云南皇冠假日酒店

收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 6
活跃值: 活跃值 (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
OTangenTO 活跃值 2017-10-28 12:28
2
0
%%%%%%%
游客
登录 | 注册 方可回帖
返回