弱いセッションID
インターフェース
ソースコード
<?php
$html = "";
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if (!isset ($_SESSION['last_session_id'])) {
$_SESSION['last_session_id'] = 0;
}
$_SESSION['last_session_id']++;
$cookie_value = $_SESSION['last_session_id'];
setcookie("dvwaSession", $cookie_value);
}
?>
コード分析
last_session_idの値を取得します(存在する場合)。+ 1(存在しない場合)、新しい値を作成して0に設定します。既存のlast_session_idの正当性が判断されておらず、パスワードを入力せずに直接入力する効果を実現するようにセッションを構築できることがわかります。
浸透ステップ
最初のステップ:[生成]ボタンをクリックした後、Chromeプラグインを使用してCookieを表示し、クリックしてCookieをエクスポートします。
ステップ2:ブラウザーを閉じて、index.phpに再度アクセスすると、Webページがlogin.phpページにジャンプすることがわかります。これは、まだログインしていないためです。現在のページのCookieを確認したところ、dvwaSessionが1つ欠落していることがわかりました。
ステップ3:新しいtxtファイルを作成し、最初のステップでコピーしたCookieを貼り付けて表示し、dvwaSessionの値が1であることを確認します。前のソースコード分析と組み合わせると、このdvwaSessionは[生成]をクリックするたびに1ずつ増加します。値が1より大きい限り、ログインできます。
ステップ4:login.phpページにCookieを追加します。名前はdvwaSession、値は2、パスは/ DVWA / vulnerabilities / weak_idです。hostonlyとsessionのオプションを確認するように注意してください。
ステップ5:index.phpインターフェースに再度アクセスして入力します。パスワードなしの入力を実現するために、login.phpインターフェースに再度ジャンプすることはありません。
プラグインのダウンロードアドレス
この実験で使用したChromeプラグインのダウンロードアドレス:プラグインのダウンロード