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)
Bu açığı istismar etmek için şunlara ihtiyacınız var: Bir LFI açığı, phpinfo()'un görüntülendiği bir sayfa, "file_uploads = on" ve sunucunun "/tmp" dizinine yazabilmesi.
https://www.insomniasec.com/downloads/publications/phpinfolfi.py
Tutorial HTB: https://www.youtube.com/watch?v=rs4zEwONzzk&t=600s
Açığı düzeltmeniz gerekiyor ( => yerine => değiştirin). Bunu yapmak için şunları yapabilirsiniz:
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)
Eğer PHP'de yüklemelere izin veriliyorsa ve bir dosya yüklemeye çalışıyorsanız, bu dosya sunucu isteği işleyene kadar geçici bir dizinde saklanır, ardından bu geçici dosya silinir.
Sonra, web sunucusunda bir LFI açığı bulduysanız, oluşturulan geçici dosyanın adını tahmin etmeye çalışabilir ve dosya silinmeden önce geçici dosyaya erişerek bir RCE'yi istismar edebilirsiniz.
Windows'ta dosyalar genellikle C:\Windows\temp\php dizininde saklanır.
Linux'ta dosyanın adı genellikle rastgele olup /tmp dizininde bulunur. Ad rastgele olduğu için, geçici dosyanın adını bir yerden çıkarmak ve silinmeden önce ona erişmek gerekir. Bu, "phpconfig()" fonksiyonunun içeriğindeki $_FILES değişkeninin değerini okuyarak yapılabilir.
phpinfo()
PHP, 4096B'lık bir tampon kullanır ve tampon dolu olduğunda, istemciye gönderilir. Ardından istemci, büyük başlıklar kullanarak birçok büyük istek gönderebilir, php ters shell yükleyebilir, phpinfo()'un ilk kısmının geri dönmesini bekleyebilir (geçici dosyanın adı burada bulunur) ve php sunucusu dosyayı silmeden önce LFI açığını istismar ederek geçici dosyaya erişmeye çalışabilir.
İsimleri brute force denemek için Python scripti (uzunluk = 6)
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)