DVWAでCSP-Bypass


前提

目標

  • CSP設定のある状態でもXXSを可能にする

手順概要

  • 挙動確認
  • CSP回避

内容

CSPとは

  • Content-Security-Policyの略
  • script-src,img,font等の参照可能ドメインを制限できる

前準備

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

  • insecure CAPTCHAにアクセスする(左メニューにある)

CSPを攻略する

  • 挙動を確認する

    • 外部ソースのスクリプトを埋め込めるとのことなので、入れてみる。
    • consoleを見ると、CSPによって弾かれていることが分かる。
    • postの結果からCSPの設定をみると、script-srcが設定されていた。
  • 挙動からの考察

    • CSPによって、参照可能srcドメインが制限されている。
    • 許可されたドメインの中に「https://pastebin.com 」がなぜか入っている。これは、作成したhtmlを呼び出し先に埋め込むサイトであり、ここからscriptを差し込める余地がある。
    • DVWAで予め用意されているデータを拝借し実行する。「https://pastebin.com/raw/R570EE00
    • 以下画像のようにalert()が実行されたことが分かる。
  • 最後に

    • XXS対策でCSPを設定していても、その設定が不適切だと、今回のように突破される。

おわり