前提
- kali linux環境がある
- DVWAのセットアップ済み
- 初級レベル理解済み
目標
- 脆弱性の理解を深める。
手順概要
- 大まかな挙動を把握する
- コードを見て脆弱性をみつける
- コードの脆弱性を攻撃する
内容
###挙動の把握
コードを確認
low
- 特に設定なし。
- scriptを差し込めば、そのまま転写される。
<?php
# No protections, anything goes
?>
medium
- stripos(a,"str")は、aの中に"str"が入っていれば真
- 今回の場合、<scriptが入っていれば、Englishで処理される
- 逆に言うと、<scriptを含めなければOKである
<?php
$default = $_GET['default'];
# Do not allow script tags
if (stripos ($default, "<script") !== false) {
header ("location: ?default=English");
exit;
}
?>
high
- 文字列が完全に一致しない場合、Englishで処理される。
switch ($_GET['default']) {
case "French":
case "English":
case "German":
case "Spanish":
# ok
break;
default:
header ("location: ?default=English");
exit;
}
impossible
- コード不明。いい感じにプロテクトされているらしい。
<?php
# Don't need to do anything, protction handled on the client side
?>
脆弱性を攻撃する
low
medium
-
<script
は封印されたので、それ以外で埋め込む。 - 注意点はDOMを壊さないように調整すること。
-
dummy</select><img src="#" onerror=alert("medium")>
high
impossible
- 無理っぽい