Convalida del cookie di bypass

2

Ho scoperto che un'applicazione web consente l'impostazione di determinati valori di cookie attraverso i parametri di richiesta. Ogni richiesta param risulta in un'intestazione Set-Cookie separata. ad esempio una richiesta come questa:

/url?cookie1=first_value&cookie2=second_value

restituisce le seguenti intestazioni:

Set-Cookie: cookie1=first_value
Set-Cookie: cookie2=second_value

Queste intestazioni vengono visualizzate dopo l'intestazione del cookie id di sessione, quindi suppongo che dovrei essere in grado di correggere la sessione utilizzando un valore cookie simile al seguente

first_value; another_cookie=another_value

URL che codifica i segni spazio, punto e virgola e uguale. Tuttavia, una volta che l'app vede il punto e virgola, viene semplicemente troncato fino a quel punto, quindi l'intestazione della risposta diventa:

Set-Cookie: first_value

La mia domanda è, quali altri delimitatori potrebbero accettare un browser o quali metodi potrebbero consentire il bypass del filtro.

    
posta Slicedpan 20.02.2014 - 17:23
fonte

2 risposte

1

Un'iniezione CRLF potrebbe funzionare. Dovresti utilizzare un URL come il seguente:

/url?cookie1=first_value%0d%0aSet-Cookie:%20cookie2=second_value
    
risposta data 02.03.2014 - 18:03
fonte
1

Il punto e virgola è un valore vecchio, per lo più obsoleto per il separatore di record CGI, ma è ancora riconosciuto da molti script CGI. Molto probabilmente quello che sta succedendo è che il tuo

/url?cookie1=first_value;another_cookie=another_value&cookie2=second_value

viene interpretato come

cookie1=first_value
another_cookie=another_value
cookie2=second_value

e poiché lo script CGI non sa cosa fare con un parametro chiamato another_cookie , lo ignora. Probabilmente puoi aggirare questo problema con la codifica in percentuale del tuo punto e virgola:

/url?cookie1=first_value%3Banother_cookie=another_value&cookie2=second_value
    
risposta data 01.07.2014 - 08:36
fonte

Leggi altre domande sui tag