sPaiZ-Nuke.net - это официальный сайт движка сайтов сделанного на основе PHP-Nuke. Отличия заключаются в том, что sPaiZ-Nuke (далее просто SN) на много урезан в коде, но как показала практика не менее дыряв. Основой для взлома была дыры найденная группой RusH (
http://rst.void.ru) в PHP-Nuke version <= 7.0 FINAL (
http://rst.void.ru/texts/advisory16-ru.txt). Представляет она из себя SQL-инъекцию. Она заключается в следующем: уязвимость находится в модуле Survey и удаленный атакующий может внедрить произвольный sql-код используя отсутствие фильтрации переменной pollID. Данная уязвимость может быть использована для получения хешей паролей пользователей портала:
www.victim.com/php-nuke/modules.php?name=Surveys&pollID=a'[sql_code_here]
По хорошему стечению обстоятельств выяснилось, что и SN подвержен этой уязвимости ;-) Далее есть два пути: внедрить свой SQL-код или воспользоваться приватным сплоитом (r57nuke-survey.pl). Ни то ни другое я вам дать не могу, по понятным причинам :-)
Далее для получения MD5 хеш админа нужно было узнать его имя. Явным образом оно не присутствовало в новостях на сайте, но его можно узнать несколькими способами:
1) Первым делом я нашел асю админа на сайте и просто постучавшись к нему с помощью Социальной Инженерии, быстро узнал под каким он ником зареген (его имя оказалось Sensey).
2) Самый верный и быстрый способ, как потом оказалось, имя админа можно узнать из названий рисунков, например:

Т.е. делаем поиск в исходнике главной страницы по слову "images/authors/".
3) Как правило это юзер у которого больше всего постов на сайте. Данная статистика общедоступна.
4) Большинство админов первым делом регистрируются под ником admin.
Теперь зная имя админа, я без проблем узнал его хеш. Далее для попадения в админку у меня опять было два пути:
1) Набрутить пароль который находился в этом хеше
2) Подставить хеш в куку. Это способ наиболее быстрый, т.к. требует только знаний, как модификацировать куку и формат в котором хранится в них хеш. Например, почти все известный на сегодня движки хранят хеш в куке: phpBB, PHP-Nuke, Invision Power Board (в ранних версиях, в куке хранился пароль в открытом виде) и т.д. Не исключение оказался и наш SN.
Оказало, что это действительно base64 и в переменно Value харнится:
admin:6360f393e3602b3fe90c896a4cacfb09 // Т.е. имя_админа:md5_хеш
Теперь нам предстояло получить с сайта жертвы любую куку и изменить ее на:
Key=admin
Value=логин_и_пароль_в_md5_зашифрованный_в_base64
Первым делом я зашифровал с помощью base64_encode() логин и пароль админа и полез на сайт с целью получить куку. Но тут меня ждал очередной облом, т.к. все опросы (работаю на основе запоминания IP на 15 мин.) и т.п. не создают куков. Пришлось опять стучаться к автору движка и применять Социальную инженерую. После не долгого разговора выяснилось, что куки создаются только для админа и обычный посетитель сайта их не может получить.
На этом этапе я немного встал в тупик: куку с сайта жертвы я получить не мог, отредактировать переменную "Web site" в куках от IE я не могу (о том почему не мог и как все же выйти из ситуации читайте в моей следующей статье), а изучать способ хранения кук в других браузерах у меня не было желания в тот момент =)
После изучения исходника html-страницы я сделал POST-запрос:
chng_name=God&chng_aid=Sensey&chng_email=admin@lamer.gi&
chng_admlanguage=&chng_radminarticle=1&chng_radmintopic=1&
chng_radminsurvey=1&chng_radmindownload=1&chng_radminsuper=1&
chng_pwd=web-hack.ru&chng_pwd2=web-hack.ru&adm_aid=Sensey&op=UpdateAuthor
В переменных chng_aid и adm_aid хранилось имя админа, а в chng_pwd и chng_pwd2 новый пароль. Обратите внимание, что нету формы для запроса старого пароля, если бы такая имелась то моя попытка сменить пароль провалилась (интересен тот факт, что после общения с разработчиком после взлома он так и согласился создавать форму для ввода старого пароля). Формат куки передаваемой в AccessDiver был:
admin=YWRtaW46ODMxOTZhZWI2NjI5ZTMyNmI1YjZmNGFhN2M5MTJkYTk=
==========
Заключение
==========
Хочу заметить, что никаких деструктивных операций я не производил, а взлом был сделан лишь из тех соображений, чтобы бы указать автору на уязвимость, а не из-за врожды, ненависти и т.п. Обсужденине данной статьи производится у меня на форуме -
http://forum.web-hack.ru/index.php?act=ST&f=12&t=5399 . Еще хочу заметить, что взлом не удался бы (не смог бы получить хеш) если на хостинге стояла не MySQL версии 4.