LFI2RCE via phpinfo()
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
Kry 'n hacker se perspektief op jou webtoepassings, netwerk, en wolk
Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak. Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskep.
Om hierdie kwesbaarheid te benut, benodig jy: 'n LFI kwesbaarheid, 'n bladsy waar phpinfo() vertoon word, "file_uploads = on" en die bediener moet in staat wees om in die "/tmp" gids te skryf.
https://www.insomniasec.com/downloads/publications/phpinfolfi.py
Tutorial HTB: https://www.youtube.com/watch?v=rs4zEwONzzk&t=600s
Jy moet die eksploit herstel (verander => na =>). Om dit te doen kan jy doen:
You moet ook die payload aan die begin van die exploit verander (vir 'n php-rev-shell byvoorbeeld), die REQ1 (dit moet na die phpinfo-bladsy wys en die padding ingesluit hê, d.w.s.: REQ1="""POST /install.php?mode=phpinfo&a="""+padding+""" HTTP/1.1), en LFIREQ (dit moet na die LFI kwesbaarheid wys, d.w.s.: LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r -- Kontroleer die dubbele "%" wanneer jy null char exploiteer)
As opgelaai word in PHP toegelaat en jy probeer om 'n lêer op te laai, word hierdie lêers in 'n tydelike gids gestoor totdat die bediener klaar is met die verwerking van die versoek, dan word hierdie tydelike lêers verwyder.
As jy 'n LFI kwesbaarheid in die webbediener gevind het, kan jy probeer om die naam van die tydelike lêer wat geskep is te raai en 'n RCE te exploiteer deur toegang tot die tydelike lêer te verkry voordat dit verwyder word.
In Windows word die lêers gewoonlik gestoor in C:\Windows\temp\php
In linux was die naam van die lêer gewoonlik random en geleë in /tmp. Aangesien die naam random is, is dit nodig om uit 'n plek die naam van die tydelike lêer te onttrek en toegang daartoe te verkry voordat dit verwyder word. Dit kan gedoen word deur die waarde van die veranderlike $_FILES binne die inhoud van die funksie "phpconfig()" te lees.
phpinfo()
PHP gebruik 'n buffer van 4096B en wanneer dit vol is, word dit na die kliënt gestuur. Dan kan die kliënt 'n groot aantal groot versoeke stuur (met groot koptekste) wat 'n php omgekeerde shell oplaai, wag vir die eerste deel van die phpinfo() om teruggestuur te word (waar die naam van die tydelike lêer is) en probeer om toegang tot die tydelike lêer te verkry voordat die php bediener die lêer verwyder deur 'n LFI kwesbaarheid te exploiteer.
Python-skrip om te probeer om die naam te bruteforce (as lengte = 6)
Kry 'n hacker se perspektief op jou webtoepassings, netwerk en wolk
Vind en rapporteer kritieke, exploiteerbare kwesbaarhede met werklike besigheidsimpak. Gebruik ons 20+ pasgemaakte gereedskap om die aanvaloppervlak te karteer, vind sekuriteitskwessies wat jou toelaat om bevoegdhede te verhoog, en gebruik geoutomatiseerde eksploit om noodsaaklike bewyse te versamel, wat jou harde werk in oortuigende verslae omskakel.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)