LFI2RCE via phpinfo()
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Da biste iskoristili ovu ranjivost, potrebni su vam: LFI ranjivost, stranica na kojoj se prikazuje phpinfo(), "file_uploads = on" i server mora moći da piše u direktorijum "/tmp".
https://www.insomniasec.com/downloads/publications/phpinfolfi.py
Tutorial HTB: https://www.youtube.com/watch?v=rs4zEwONzzk&t=600s
Morate da ispravite exploit (promenite => u =>). Da biste to uradili, možete:
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)
Ako su uploadi dozvoljeni u PHP-u i pokušate da uploadujete fajl, ovaj fajl se čuva u privremenom direktorijumu dok server ne završi obradu zahteva, zatim se ovaj privremeni fajl briše.
Zatim, ako ste pronašli LFI ranjivost na web serveru, možete pokušati da pogodite ime privremenog fajla koji je kreiran i iskoristite RCE pristupajući privremenom fajlu pre nego što bude obrisan.
U Windows-u fajlovi se obično čuvaju u C:\Windows\temp\php
U linux-u ime fajla obično je random i nalazi se u /tmp. Pošto je ime nasumično, potrebno je izvući ime privremenog fajla iz nekog izvora i pristupiti mu pre nego što bude obrisan. To se može uraditi čitanjem vrednosti varijable $_FILES unutar sadržaja funkcije "phpconfig()".
phpinfo()
PHP koristi bafer od 4096B i kada je pun, on se šalje klijentu. Zatim klijent može slati mnogo velikih zahteva (koristeći velike header-e) uploadujući php reverznu shell, čekati da se prvi deo phpinfo() vrati (gde je ime privremenog fajla) i pokušati da pristupi temp fajlu pre nego što php server obriše fajl iskorišćavajući LFI ranjivost.
Python skripta za pokušaj bruteforce-a imena (ako je dužina = 6)
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)