PDA

Просмотр полной версии : Writeup - Странный сервер


morozko
11.01.2024, 13:40
Writeup который подтолкнул меня на самостоятельное решение этого task-а:
Antichat - Antichat - Странный сервер [Writeup] (https://forum.antichat.xyz/threads/1642791/)
От автора я узнал про SSTImap и с серьезным настроем начал сам добывать флаг.

Приступим к решению с помощью инструмента SSTImap

Давайте клонируем github репозиторий данного инструмента. Для начала скопируем ссылку:

Далее в терминале перейдем в директорию /opt и введем следующую команду:

Дождемся клонирования и запустим инструмент со следующими опциями:

Где GET запрос ?test=test является полезной нагрузкой (payload - ом). Так мы узнаем использует ли сайт шаблонизатор. Как видим – да использует, этошаблонизатор Jinja2 написанный на python.

Давайте просмотрим--help к SSTImap. Увидим, что есть опция–reverse-shell HOST PORT, в дальнейшем она нам пригодится для эксплуатации RCE уязвимости. Перейдем в браузер, в поисковой строке браузера пишемpayload jinja2 и переходим по самой первой ссылке. Берем базовый payload{{7*7}} и возвращаемся в терминал, давайте вновь применим SSTImap!
Но перед этим нам необходимо запустить сервер с командой:

Наш сервер будет слушать 8000 порт и именно на нашем сервере мы проэксплуатируем RCE при помощи reverse shell. Мы примем подключение от атакуемого сервера.
Далее в терминале пропишем следующую команду:

Как вы можете видеть мы используем найденный нами payload {{7*7}}.
После того как инструмент отработает, вернемся к нашему серверу и увидим, что мы проэксплуатировали SSTI и RCE:

Спасибо за внимание, успехов!

Cruel Lord
20.01.2024, 02:01
Решил проще, shell не понадобился

{{ self.__init__.__globals__.__builtins__.__import__( 'os').popen('cat flag.txt').read() }}

serzh_fedorov
17.09.2024, 22:38
Для большего понимания как решил Cruel Lord, можно ознакомиться с этим, как раз разбор самой техники