ALERT - I caratteri ASCII-NUL non sono consentiti all'interno delle variabili di richiesta

2

In un sito Drupal, ottengo questo errore nel syslog del mio Debian:

suhosin[9413]: ALERT - ASCII-NUL chars not allowed within request variables - dropped variable 'name' (attacker 'x.x.x.x', file '/path/to/index.php')

Mi chiedo se indica un attacco e, in tal caso, come evitarlo?

    
posta hnn 25.03.2013 - 09:06
fonte

1 risposta

5

Questo potrebbe essere la prova di un tentativo Attacco byte NULL avvelenato . PHP e Perl non usano stringhe con terminazioni NULL , ma la maggior parte dei sistemi sottostanti (qualsiasi cosa basata su C) fa.

Questo può portare ad una certa classe di attacco in cui l'attaccante costruisce una stringa che il programmatore intendeva essere impossibile. Ad esempio, se si stesse utilizzando una libreria C per includere il contenuto del file locale in una pagina Web, nel PHP si potrebbe fare qualcosa di simile;

grabLocalFile($_GET['file_name'] . ".php");

Aggiungendo manualmente ".php" può sembrare che venga offerta una certa sicurezza, in quanto solo i nomi dei file che terminano con .php possono essere inclusi. Tuttavia se un utente malintenzionato è in grado di inviare una richiesta come;

example.com/index.php?file_name=/etc/passwd
grabLocalFile("/etc/passwd
str_replace(chr(0), '', $string);
.php");

Il byte null .php sarà trattato come parte della stringa da php, che finisce con la chiamata;

grabLocalFile($_GET['file_name'] . ".php");

Quando questa stringa raggiunge il sistema sottostante, il byte NULL verrà trattato come un terminatore di stringa e il /etc/passwd verrà ignorato. Ora l'autore dell'attacco ha incluso %code% nella pagina Web che sta visualizzando, nonostante il tentativo dello sviluppatore di imporre l'inclusione solo dei file che terminano con ".php"

Per mitigare questo tipo di attacchi puoi eliminare del tutto il byte NULL facendo qualcosa del genere

example.com/index.php?file_name=/etc/passwd
grabLocalFile("/etc/passwd
str_replace(chr(0), '', $string);
.php");

Indipendentemente da ciò, suhosin sembra configurato correttamente per difendersi da questa classe di attacco.

    
risposta data 25.03.2013 - 12:22
fonte

Leggi altre domande sui tag