Дмитрий DarkByte Москин

Мой блог, да.
logo

Admin access - RuCTF 2012 Quals

Опубликовано 18.03.2012 автором Дмитрий Москин
Admin access [ctb] / 300 баллов
Получите административный доступ. Если сможете, конечно.

Переходим по ссылке и видим форму авторизации, которая на любые действия отвечает "Access denied". Проверяем наличие файлов robots.txt и .htaccess и оказывается, что они оба содержат полезную информацию:
User-agent: *
Disallow: /SuperAdminAccess


<Files "key">
Order Deny,Allow
Deny from all
</Files>
<Files "all_sources_of_scripts">
</Files>

Смотрим файл all_sources_of_scripts.txt и видим, что для получения доступа, необходимо передать такой параметр p, результат хеширования которого функцией superhash примет значение admin, т.е. имя функции, которую необходимо вызвать.

Разобравшись в функции, понимаем, что довольно не сложно сгенерировать строку, которая вернёт нужное имя функции. [Подробнее об этом будет позже].

Получаем, что необходимо передать 1915 символов 'z' и за ними символы 'CD', но из-за каких-то ошибок в расчётах, результат получается "AdMiN", но это не страшно, ведь в PHP имена регистронезависимые. Заходим по адресу /SuperAdminAccess и вводим эту длинную строку в поле ввода, нажимаем Enter и... ничего. Товарищ, наблюдавший из-за спины за процессом уж собрался пересчитывать всё по новой, но я нажал ctrl+u и нашёл флаг в исходном коде страницы. Он просто был написан чёрным по чёрному :)

Flag: 1_HAV3_D0NE_!T