Sto cercando di capire come eseguire un LFI (in particolare PHP LFI), e c'è un aspetto di questo attacco che sembra non essere mai discusso negli articoli online che ho letto: Il file iniettato permessi .
In effetti, supponiamo di poter iniettare un file nel sistema. Il più delle volte, non sarà leggibile o eseguibile (anche la directory potrebbe non essere attraversabile). Pertanto, anche se posso attraversare un percorso con un ?file=../../../../../shell.php
, non verrà eseguito.
Quello che sto cercando di dire è che, secondo me, se un sistema che esegue PHP è ben configurato e assegna i permessi giusti ai file, non c'è motivo di preoccuparsi molto delle estensioni dei file, del contenuto dei file ... Quindi, invece di aggiungere più controlli sul file iniettato come suggerito su più risorse online, non dovrebbe concentrarsi sulla configurazione del sistema (allow_url_include = 0, permessi sui file, ...)? Per me, è paragonabile alle iniezioni SQL. Preferisci utilizzare le istruzioni di preparazione e il controllo semplice dell'input dell'utente rispetto alle query vulnerabili e il controllo di input utente complesso con whitelist / blacklist enormi.
Mi manca qualcosa?