Краткое прохождение первого дня Zeronights 2017 HackQuest.
Сайт с заданием представляет собой почти пустую страницу. Из интересного - только html комментарий.
<!-- updated page via bitbucket 23.10.2017 -->
http://bitbucket.zeroevening.org/
Находим поддомен с bitbucket v4.7.1, который уязвим к частичному обходу авторизации (https://bo0om.ru/just-enter-the-space-attacks).
http://bitbucket.zeroevening.org/admin%20/server-settings
Из настроек узнаем о поддомене git-admintools.zeroevening.org, на котором расположен скрипт, позволяющий сделать git clone --recursive
по произвольному URL. Файлы сохраняются в веб директорию /repos/%repo_name%/
.
http://git-admintools.zeroevening.org/
В данном задании предполагалось использование CVE-2017-1000117, но я пошел более простым путем и скопировал проект с кучей готовых пейлоадов PayloadsAllTheThings. Оказалось, что расширения pht
и phtml
не были заблокированы и я сразу получил готовый шелл.
Читаем config.php и идем на следующий поддомен.
http://dev-cyberplatform-ico.zeroevening.org/?url=ops.jpg
На данном сайте через параметр url можно сделать SSRF и чтение произвольных файлов, результат попадает на страницу в виде base64 картинки. Я потратил довольно много времени на поиски исходного кода или конфигов, пока не наткнулся на /etc/hosts.
http://dev-cyberplatform-ico.zeroevening.org/?url=/etc/hosts
172.18.0.3 83c994f72770
Пробуем соседние IP и находим скрипт с SQL Injection.
Читаем install.php
и находим пароли для jenkins.
mysql_query("INSERT INTO users (login,pass,status) VALUES ('root', MD5('toor'), 'admin');");
mysql_query("DROP TABLE jenkins_users");
mysql_query("CREATE TABLE jenkins_users ( username TEXT, password TEXT );");
mysql_query("INSERT INTO jenkins_users (username,password) VALUES ('bomberman', 'HVQ8UijXwU)');");
mysql_query("INSERT INTO jenkins_users (username,password) VALUES ('cyberpunkych', 'DC8800_553535_proshe_pozvonitb_chem_y_kogo_to_zanimatb');");
mysql_query("INSERT INTO jenkins_users (username,password) VALUES ('bo0om', 'Hipe4Money')");
mysql_query("INSERT INTO jenkins_users (username,password) VALUES ('jbfc', 'InBieberWeTrust')");
Находим поддомен jenkins, авторизуемся под bomberman и получаем RCE.
http://jenkins.zeroevening.org/computer/(master)/script
Находим флаг, сдаем и… ничего не происходит, потому что в флаге, который лежал на сервере была опечатка. Я подумал, что это какой-то троллинг и задание нужно ковырять еще глубже, но, ничего не найдя, пошел спать. В итоге все-таки оказался первым и получил инвайт.