Ci sono numerosi riferimenti alle vulnerabilità di HTTP Response Splitting (HRS) con PHP risolte da 4.4.2 e 5.1.2 (ad esempio link ) o per circa 9 anni.
Eppure CVE-2013-2652 ha segnalato una vulnerabilità in WebCollab utilizzando PHP, anche se il proof-of-concept ( link ) ha specificato una versione PHP di 5.4.7. L'identificazione del problema utilizza "% 0d% 0a" nella sua istruzione problema.
Ho sperimentato personalmente PHP e in effetti evito di consentire l'inserimento della sequenza esadecimale a 2 byte 0x0d0x0a, ma non impedisce l'inserimento della sequenza di 6 caratteri equivalente% -d% 0a.
Almeno sulla superficie, questa sembra essere un po 'una contraddizione. Cioè che 1) PHP non è sicuro per HRS come suggerito poiché consente di inserire la sequenza di 6 caratteri "% 0d% 0a" in un'intestazione o 2) la vulnerabilità dichiarata in CVE-2013-2652 (che "% 0d % 0a "poteva essere scritto da un'applicazione PHP) era almeno significativamente sopravvalutato.
Quale di questi è vero? (O è qualcosa di completamente diverso?)
(Note: a) Comprendo perfettamente che è meglio convalidare o disinfettare i dati forniti dall'utente indipendentemente da quali siano le altre protezioni disponibili. b) La correzione WebCollab era abbastanza semplice e fa proprio questo: convalidare l'input fornito dall'utente per i caratteri consentiti. Sono più interessato qui alla robustezza della sicurezza HRS di PHP e alla natura di qualsiasi pericolo, se esiste.)