phar:// deserialization
Bug-Bounty-Tipp: Melden Sie sich an bei Intigriti, einer Premium-Bug-Bounty-Plattform, die von Hackern für Hacker erstellt wurde! Treten Sie uns noch heute bei https://go.intigriti.com/hacktricks bei und beginnen Sie, Prämien von bis zu 100.000 $ zu verdienen!
Phar-Dateien (PHP Archive) enthalten Metadaten im serialisierten Format, sodass beim Parsen diese Metadaten deserialisiert werden und Sie versuchen können, eine Deserialisierungs-Schwachstelle im PHP-Code auszunutzen.
Das Beste an dieser Eigenschaft ist, dass diese Deserialisierung auch bei Verwendung von PHP-Funktionen erfolgt, die keinen PHP-Code auswerten, wie file_get_contents(), fopen(), file() oder file_exists(), md5_file(), filemtime() oder filesize().
Stellen Sie sich also eine Situation vor, in der Sie eine PHP-Webseite dazu bringen können, die Größe einer beliebigen Datei mit dem phar://
-Protokoll zu erhalten, und im Code finden Sie eine Klasse, die der folgenden ähnelt:
Sie können eine phar-Datei erstellen, die beim Laden diese Klasse missbraucht, um beliebige Befehle auszuführen, beispielsweise:
Beachten Sie, wie die magischen Bytes von JPG (\xff\xd8\xff
) am Anfang der phar-Datei hinzugefügt werden, um mögliche Datei-Upload-Beschränkungen zu umgehen.
Kompilieren Sie die Datei test.phar
mit:
Und führen Sie den Befehl whoami
aus, indem Sie den anfälligen Code missbrauchen mit:
Referenzen
Bug-Bounty-Tipp: Registriere dich bei Intigriti, einer Premium-Bug-Bounty-Plattform, die von Hackern für Hacker erstellt wurde! Trete uns noch heute unter https://go.intigriti.com/hacktricks bei und beginne, Prämien von bis zu $100.000 zu verdienen!
Last updated