能力值:
( LV7,RANK:110 )
|
-
-
2 楼
把压入success和代码和跳转到call MessageBoxW的代码结合在一起了 我咋没想到呢 学习了
|
能力值:
( LV9,RANK:370 )
|
-
-
3 楼
唉,要是我是裁判,一定把那些用硬编码跳转的全部咔嚓掉。我机器的栈地址是13打头的。
找一个稳定的跳板应该是第一要素吧,我拿了题目还在想怎么编程找跳板呢,这边答案都全出来了。悲剧!
不知道谁找到非栈地址的跳板没有,就是那种地址中的数据是指向跳转指令地址的地址,而且至少能跳8条指令以上的。
add esp, xx
...
ret
之类的。shellcode大小有什么好研究的。找跳板才是正事。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
你这个 很稳定啊
发哥的虽然26的 但是我这里弹出字符串错误。
到现在为止 你这个是最优解啊
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
改了两处堆栈指针,跑了一下,报错了,可能是call跳转的地址不正确
|
能力值:
( LV13,RANK:220 )
|
-
-
6 楼
我的栈段是0x13***的,
因此****没框框
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
跳转不是想的那么好找.因为是CALL [EDX]
找到适合的指令还得有个可仿问的地址中存放了这个指令所在的址址.
|
能力值:
(RANK:1060 )
|
-
-
8 楼
往后挪一下就29了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
CALL [EDX]
找到跳板了没 ?
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
膜拜啊膜拜,感谢分享。
|
能力值:
( LV9,RANK:610 )
|
-
-
11 楼
只能膜拜。。。
0012FCC7 E8 00152D00 CALL ExploitM.004011CC
这样就29字节了 做好后补上。
|
能力值:
(RANK:250 )
|
-
-
12 楼
我分析了下程序,感觉这个题 其实主要是考汇编功底的,它的不是一个堆溢出漏洞。而是精心构造的一个覆盖而已。
|
能力值:
( LV12,RANK:300 )
|
-
-
13 楼
[QUOTE=blackwhite;875342]跳转不是想的那么好找.因为是CALL [EDX]
找到适合的指令还得有个可仿问的地址中存放了这个指令所在的址址.[/QUOTE]
我也觉得这个才头痛。
比如USP10.dll里有好几处指令是add esp, 28h retn XX的格式。call [edx]进入时[esp+28h]处刚好是原exploitme.dat内容的第一个DWORD处(当然这里add esp, xxh这个xx还可以大于28h),在这个用于retn的位置放置一条jmp esp指令的地址的话,就可以通过这样的连跳跳到栈中exploitme.dat内容中执行。然而要找到一个存放了前面这个add esp xxh指令的可访问的稳定的地址却要碰运气。
|
能力值:
( LV6,RANK:80 )
|
-
-
14 楼
学习了,呵呵;我咋就没想到利用Call来将“Exploit success”字符串压栈呢,巧妙~~~
我的是:
0012FCA8 6A 00 push 0
0012FCAA 68 6C604000 push 40606C ; UNICODE "ExploitMe"
0012FCAF 68 78FC1200 push 12FC78 ; UNICODE "Exploit success"
0012FCB4 - E9 13152D00 jmp ExploitM.004011CC
多了4byte。。。
|
能力值:
( LV6,RANK:80 )
|
-
-
15 楼
膜拜大牛~~~
|
能力值:
(RANK:300 )
|
-
-
16 楼
我想大概也就只能这样子了。我在内存中找了很久也没有找到要用到的字符串。偶然间找到字符串,也是其他程序影响的。做大到传说中的20字节以内。而且即使这样做根本不算合格,鬼知道测试文件的机器的状况是什么样的。
顺便讲一下啊, 太虚伪了 说只用八个字节 当时我就傻了, 一个edx值 一个函数地址,也要6个字节吧。两个字节其他的事情就都干完了。计算机技术果然强悍。难道内存中已经编号好码,直接跳过去就o了?哎,终于发现我被骗了
|
能力值:
( LV6,RANK:90 )
|
-
-
17 楼
又是大开眼界,膜拜
|
能力值:
( LV2,RANK:140 )
|
-
-
18 楼
[QUOTE=轩辕小聪;875580]我也觉得这个才头痛。
比如USP10.dll里有好几处指令是add esp, 28h retn XX的格式。call [edx]进入时[esp+28h]处刚好是原exploitme.dat内容的第一个DWORD处(当然这里add esp, xxh这个xx还可以大于28h),在这个用于retn的位置...[/QUOTE]
这是正解。看来要靠平时的细心和积累了。jmp esp,jmp ecx啥的要归档备用。
|
|
|