
wordpress 5.8.2 におけるSQLインジェクション脆弱性のデモンストレーション
このリポジトリはWordPress 5.8.2の脆弱性を示しています。class-wp-tax-query.phpのサニタイズ不足により、非常に特殊な状況下で攻撃者がSQLインジェクションを実行できる可能性があります。なお、悪用を成功させるには、開発者がWordPressインスタンスに脆弱なコードを追加する必要があります。そのコードでは、サニタイズされていないユーザー入力が$terms変数に渡され、SQL関数の構築に使用されます。含まれている "evil" プラグインのevil.php、およびclass-wp-tax-query.phpのget_sql_for_clauseにおける$terms変数のサニタイズ不足を参照してください。
脆弱性のある/悪意のあるプラグインは src/wp-content/plugins/evil/evil.php にあります。
デモ手順
sudo docker-compose up localhostでインストール手順に従ってください。 管理パネルでWordPressプラグインを有効にしてください(「evil plugin」というタイトルです)。 newexploit_req.txt 内のリクエストを新しく作成したサーバーに送信してください。タイムディレイが発生するはずです。 このプラグインで示される脆弱性はブラインドSQLインジェクションであるため、データを取得したい場合は、タイムディレイまたはエラー経由でデータを取得する必要があります。
デバッグメモ
名前解決に失敗した場合は sudo service docker restart を実行してください。 必要に応じて xdebug.ini 内の xdebug.client_host=172.19.0.1 を調整してください。