LFI2RCE via PHP_SESSION_UPLOAD_PROGRESS
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)
Wenn du eine Local File Inclusion gefunden hast, auch wenn du keine Sitzung hast und session.auto_start
auf Aus
steht. Wenn session.upload_progress.enabled
auf Ein
steht und du den PHP_SESSION_UPLOAD_PROGRESS
in multipart POST-Daten bereitstellst, wird PHP die Sitzung für dich aktivieren.
Beachten Sie, dass Sie mit PHP_SESSION_UPLOAD_PROGRESS
Daten innerhalb der Sitzung steuern können. Wenn Sie Ihre Sitzungsdatei einfügen, können Sie einen Teil einfügen, den Sie kontrollieren (zum Beispiel einen PHP-Shellcode).
Obwohl die meisten Tutorials im Internet empfehlen, session.upload_progress.cleanup
aus Debugging-Gründen auf Off
zu setzen, ist die Standardeinstellung session.upload_progress.cleanup
in PHP weiterhin On
. Das bedeutet, dass Ihr Upload-Fortschritt in der Sitzung so schnell wie möglich bereinigt wird. Dies wird also Race Condition sein.
Im originalen CTF, in dem diese Technik kommentiert wird, war es nicht genug, die Race Condition auszunutzen, sondern der geladene Inhalt musste auch mit der Zeichenfolge @<?php
beginnen.
Aufgrund der Standardeinstellung von session.upload_progress.prefix
wird unsere SESSION-Datei mit einem lästigen Präfix upload_progress_
beginnen, wie zum Beispiel: upload_progress_controlledcontentbyattacker
.
Der Trick, um das anfängliche Präfix zu entfernen, bestand darin, die Payload 3 Mal base64 zu kodieren und dann über convert.base64-decode
-Filter zu dekodieren. Dies liegt daran, dass PHP beim Base64-Dekodieren die seltsamen Zeichen entfernt, sodass nach 3 Mal nur die Payload, die vom Angreifer gesendet wurde, übrig bleibt (und dann kann der Angreifer den Anfangsteil kontrollieren).
Weitere Informationen im ursprünglichen Bericht https://blog.orange.tw/2018/10/ und dem endgültigen Exploit https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp_for_php.py Ein weiterer Bericht unter https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)