Cookie che contiene NULL byte character (0x00) sul nuovo sito WordPress.org - eventuali problemi?

6

Ho installato il plugin NinjaFirewall su WP.org v4.7.2. Mi ha bloccato fuori dal mio sito.

Hanno chiesto il log dal cPanel della mia società di hosting, che ho ricevuto e riportano:

You have a cookie that contains the NULL byte character (0x00). That’s very odd and unusual.

You can log in to WordPress using another browser (or delete your cookies first), then go to “NinjaFirewall > Firewall Policies > Various > Block ASCII character 0x00 (NULL byte)” and select “No”. Then, scroll down to the bottom of the page and click “Save Firewall Policies”.

Questo è tutto un nuovo terreno per me. Qualcuno sa se ci sono dei problemi di cui dovrei essere a conoscenza?

    
posta James 03.03.2017 - 07:42
fonte

1 risposta

1

Does anyone know if there are any issues I should be aware of?

Il problema principale è che il linguaggio di scripting (per esempio PHP) che sta analizzando il cookie può essere implementato in una lingua (ad esempio C) che tratta il carattere di byte NULL (0x00) come un carattere di controllo speciale.

Ad esempio, nel linguaggio C una "stringa" di lunghezza N è implementata come una matrice di caratteri N + 1, dove il carattere (N + 1) alla fine dell'array è 0x00, che viene usato per indica la fine della stringa.

Il principio di sicurezza generale che viene violato qui è la combinazione imprevista di istruzioni (il carattere di controllo simile all'istruzione 0x00) con i dati. I cookie sono generalmente considerati stringhe di dati , ma poiché il byte null ha una proprietà di controllo speciale in C (indica la fine delle stringhe e può causare il ritorno delle routine di analisi delle stringhe), funziona in modo un po 'più simile una istruzione di dati .

Ecco un esempio specifico di come il byte null potrebbe causare problemi: Potrebbe essere possibile caricare un file chiamato "backdoor.php \ x00.png" che contiene codice backdoor PHP. Anche se i file php sono in blacklist per essere caricati, questo file potrebbe ancora essere caricato poiché l'estensione è ".png." Se il parsing del nome file PHP (che è implementato in C) restituisce impropriamente il carattere null byte, il file potrebbe essere salvato con il nome "backdoor.php" e potrebbe quindi essere eseguito accedendo al file nella cartella uploads. Questo tipo di exploit è chiamato "Null Byte Injection".

Non sono a conoscenza di un exploit specifico basato su un carattere null in un cookie, ma l'idea è simile a quella precedente e sfrutterò le proprietà speciali del byte null nel linguaggio di implementazione del codice che analizza il cookie.

    
risposta data 18.10.2017 - 19:29
fonte

Leggi altre domande sui tag