能力值:
(RANK:500 )
|
-
-
2 楼
可以确定shellcode的条件:
shellcode必须大于200字节,且不能含null字符
其他没看 只看到LZ这句 就觉得不对. 因为至少我那个SHELLCODE是小于200字节 并且成功溢出了的
|
能力值:
( LV13,RANK:1050 )
|
-
-
3 楼
哈,学习学习
|
能力值:
( LV8,RANK:130 )
|
-
-
4 楼
不管用bbs还是bbs1,总是断断续续不能访问,多发了一个,删另一个吧
|
能力值:
( LV8,RANK:130 )
|
-
-
5 楼
还要请教怎么小于200溢出
|
能力值:
(RANK:500 )
|
-
-
6 楼
太有意思了 forgot那里写的是 一定要小于200字节 你这里却相反
|
能力值:
( LV8,RANK:130 )
|
-
-
7 楼
谢谢提醒 我说错了 是大于200字节才能溢出
无语了
|
能力值:
(RANK:520 )
|
-
-
8 楼
shellcode 指的是具有执行功能的 指令的16进制代码
你所说的大于200字节应该是你构造的恶意字符串的长度,它里面包括shellcode
要想使跨平台 那么恶意串必须小于200字节
因为
要跨平台 就用程序本身的地址就可以了 程序本身地址有00 ,会截断串所以 只能做到把返回地址覆盖,后面的就写不到程序里去了
这样shellcode 模式要转变下
方式为SHELLCODE+JUMPADDR
shellcode控制在196字节内完全够了 后面3字节写跳转指令地址 因为程序本身地址如00402364 ,堆栈要覆盖的地址有00,只需要把402364写进去,如果有40了只需要把23,64写进去就可以了.
其实我们可以发现,返回地址下面就是我们shellcode在栈里的地址,所以我们用retn指令地址覆盖,就条到我们shellcode里了.
failwest给的168字节 完全符合
|
能力值:
( LV8,RANK:130 )
|
-
-
9 楼
作为一个poc 200字节当然是够了
但是你想做点什么时。。。
|
能力值:
(RANK:520 )
|
-
-
10 楼
对啊,portbind的 一般都300多字节,
那样只能选择系统地址跳转了 方式为jumpaddr+shellcode
系统的跳转地址具有不通用性
|
能力值:
(RANK:1060 )
|
-
-
11 楼
腰好没烦恼,你要做点什么就再recv一个包,只要tcp不分片
|
能力值:
( LV13,RANK:1050 )
|
-
-
12 楼
好,这个写的巧:
memset((char*)szBuffer,0x90,204);
memcpy((char*)szBuffer,(char*)shellcode,103);
*(DWORD*)(&szBuffer[200])=0x4010A4;
|
能力值:
( LV13,RANK:1050 )
|
-
-
13 楼
其实,关于溢出这部分可以做的更活些,ret地址你说了算,要怎么跳便怎么跳。
|
|
|