
pfSense CE 2.9.0-DEVELOPMENT – Mittel – Remote – Offene Weiterleitung – HTTP 301 $http_host
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-https-host-redirect
Klasse: Offene Weiterleitung Reichweite: Remote
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
system.inc erzeugt einen server{} auf Port 80 mit return 301 https://$http_host$redirectport$request_uri; und ohne server_name. nginx liefert 301 vor php-fpm zurück, sodass auth.inc DNS-Rebind nie ausgeführt wird.
| ID | noch keine CVE |
| Klasse | Offene Weiterleitung |
| Reichweite | Remote (authentifizierte WebGUI, sofern nicht anders angegeben) |
| CWE | CWE-601 |
| CVSS | Mittel: 4.7 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:N/A:N |
| Produkt | pfSense CE |
| Betroffen | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| Auth | WebGUI-Sitzung mit unauth client that can hit the WebGUI HTTP listener |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1 |
Ich habe den öffentlichen Master 9363ac5 fixiert. Das Lab ist ein PHP-Gadget des fixierten Sinks, Loopback-HTTP auf 127.0.0.1:19210.
Serien-Write-up: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| Methode | Sink | Berechtigung |
|---|---|---|
| unauth GET / auf TCP/80 mit einem feindlichen Host | nginx return 301 https://$http_host... | Integrität: Keine. |
| derselbe Überrest | derselbe Sink | Recon: Im Lab nachgewiesen: Host evil.example wurde zu Location https://evil.example/index.php. PHP DNS-Rebind 501 wird bei diesem 301 nicht ausgeführt. |
| derselbe Überrest | derselbe Sink | Verfügbarkeit: Keine nachgewiesen. |
Erfordert: unauth client that can hit the WebGUI HTTP listener. CSRF-Magic bei POST, sofern nicht anders angegeben. WebGUI PHP-FPM läuft als root.
Erfordert: unauth client that can hit the WebGUI HTTP listener. CSRF-Magic bei POST, sofern nicht anders angegeben. WebGUI PHP-FPM läuft als root. CSRF-Magic bei POST, sofern nicht anders angegeben. WebGUI PHP-FPM läuft als root.
PHP DNS-Rebind auf der HTTPS-GUI selbst.
Kein Diagnostics: Command, es sei denn, diese Seite wird ebenfalls gewährt.
cd lab
./run.sh
Loopback 127.0.0.1:19210. Compose-Projekt pfsense-https-host-redirect. Witness PFSENSE-HTTPS-HOST-REDIRECT-WITNESS. Nur Loopback: 127.0.0.1:19210. Compose-Projekt pfsense-https-host-redirect. Witness PFSENSE-HTTPS-HOST-REDIRECT-WITNESS. PHP-Gadget der fixierten Zeilen. Der Stack wird nach dem Lauf abgebaut.
Letzte Zeile:
SUCCESS PFSENSE-HTTPS-HOST-REDIRECT control-localhost=yes trigger-evil=yes php-rebind-skips-301=yes PFSENSE-HTTPS-HOST-REDIRECT-WITNESS
Einen konfigurierten Hostnamen verwenden, oder $host (allowlisted), nicht $http_host.
9363ac5b8651a1c7a333180425ce7719070f95f9