LFI2RCE via phpinfo()
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Erhalte die Perspektive eines Hackers auf deine Webanwendungen, Netzwerke und Cloud
Finde und melde kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen. Nutze unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die dir ermöglichen, Privilegien zu eskalieren, und automatisierte Exploits zu verwenden, um wesentliche Beweise zu sammeln, die deine harte Arbeit in überzeugende Berichte verwandeln.
Um diese Schwachstelle auszunutzen, benötigst du: Eine LFI-Schwachstelle, eine Seite, auf der phpinfo() angezeigt wird, "file_uploads = on" und der Server muss in das Verzeichnis "/tmp" schreiben können.
https://www.insomniasec.com/downloads/publications/phpinfolfi.py
Tutorial HTB: https://www.youtube.com/watch?v=rs4zEwONzzk&t=600s
Du musst den Exploit reparieren (ändere => in =>). Dazu kannst du Folgendes tun:
You have to change also the payload at the beginning of the exploit (for a php-rev-shell for example), the REQ1 (this should point to the phpinfo page and should have the padding included, i.e.: REQ1="""POST /install.php?mode=phpinfo&a="""+padding+""" HTTP/1.1), and LFIREQ (this should point to the LFI vulnerability, i.e.: LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r -- Check the double "%" when exploiting null char)
Wenn Uploads in PHP erlaubt sind und Sie versuchen, eine Datei hochzuladen, wird diese Datei in einem temporären Verzeichnis gespeichert, bis der Server die Anfrage verarbeitet hat, dann wird diese temporäre Datei gelöscht.
Wenn Sie dann eine LFI-Schwachstelle im Webserver gefunden haben, können Sie versuchen, den Namen der erstellten temporären Datei zu erraten und eine RCE auszunutzen, indem Sie auf die temporäre Datei zugreifen, bevor sie gelöscht wird.
In Windows werden die Dateien normalerweise in C:\Windows\temp\php gespeichert.
In Linux war der Name der Datei zufällig und befand sich in /tmp. Da der Name zufällig ist, ist es notwendig, den Namen der temporären Datei irgendwo zu extrahieren und darauf zuzugreifen, bevor sie gelöscht wird. Dies kann erreicht werden, indem der Wert der Variable $_FILES im Inhalt der Funktion "phpconfig()" gelesen wird.
phpinfo()
PHP verwendet einen Puffer von 4096B und wenn er voll ist, wird er an den Client gesendet. Dann kann der Client eine Menge großer Anfragen senden (unter Verwendung großer Header), eine php Reverse Shell hochladen, auf die erste Rückgabe von phpinfo() warten (wo der Name der temporären Datei steht) und versuchen, auf die temporäre Datei zuzugreifen, bevor der PHP-Server die Datei löscht, indem er eine LFI-Schwachstelle ausnutzt.
Python-Skript, um zu versuchen, den Namen zu bruteforcen (wenn die Länge = 6)
Erhalten Sie die Perspektive eines Hackers auf Ihre Webanwendungen, Ihr Netzwerk und die Cloud
Finden und melden Sie kritische, ausnutzbare Schwachstellen mit echtem Geschäftsauswirkungen. Verwenden Sie unsere 20+ benutzerdefinierten Tools, um die Angriffsfläche zu kartieren, Sicherheitsprobleme zu finden, die Ihnen ermöglichen, Berechtigungen zu eskalieren, und nutzen Sie automatisierte Exploits, um wesentliche Beweise zu sammeln, die Ihre harte Arbeit in überzeugende Berichte verwandeln.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)