Перейти к основному содержанию

CTF web — traverser

CTF

Разбираем третью задачку из нашего соревнования CTF. Задание называется traverser, 100 баллов за флаг.

ctf

Ссылка ведёт на URL:

http://challenge01.root-me.org/web-serveur/ch15/ch15.php

Нам предлагают пройти одно из испытаний на root-me.org.

Ссылки

Решение

Задача на эксплуатацию уязвимости из разряда Directory traversal attack или Path Traversal.

Path Traversal - получение доступа к файлам и каталогам, которые расположены вне пределов, определенных конфигурацией. Путем манипулирования переменными, которые указывают на положение файлов, с помощью последовательностей "../" и их вариаций, может быть получен доступ к любым файлам и каталогам, имеющимся в системе. 

Проходим по URL:

ctf

Мы видим некую фотогалерею. При клике на меню в URL меняется переменная galerie. galerie=apps, galerie=emotes, galerie=actions.

ctf

Предположим, что значение переменной - это путь к папке. Попробуем подняться на уровень выше. Заменим переменную на galerie=./

http://challenge01.root-me.org/web-serveur/ch15/ch15.php?galerie=./

ctf

Получили список директорий с фотками. Присмотримся - есть одна странная папка, которая не отображается в меню - "86hwnX...". Смотрим код страницы.

ctf

86hwnX2r - вот полное название папки.

Попробуем посмотреть что в ней лежит:

http://challenge01.root-me.org/web-serveur/ch15/ch15.php?galerie=86hwnX2r

ctf

Да, есть картинки и ещё что-то с названием "passwo...". Снова смотрим код страницы.

ctf

password.txt - вот что за файлик лежит в папке.

Откроем его.

http://challenge01.root-me.org/web-serveur/ch15/galerie/86hwnX2r/password.txt

ctf

А вот и флаг:

kcb$!Bx@v4Gs9Ez

Безопасность

  1. Валидируйте переменные, которые указывает пользователь.
  2. Не используйте в параметрах названия директорий.

Теги

 

Похожие материалы

CTF — PHP - assert()

Всем привет, сегодня воскресенье, поэтому займёмся чем-нибудь интересным. Например, порешаем задачки на информационную безопасность web-серверов. Сегодня задачка с портала root-me.org, называется "PHP - assert()".

Теги

CTF — HTTP Headers

Продолжаем решать задачки по информационной безопасности web-серверов. Сегодня задачка с портала root-me.org, называется "HTTP - Headers". За решение задачки дают 15 баллов, чуть посложнее начального уровня.

Теги