Joomla拡張機能 - ordasoft.com - 認証されていないSQLインジェクションの脆弱性(Book Library(無料)バージョン 6.4.6未満)
site/booklibrary.php の books() 関数は、フィールドと方向のリクエストパラメータを読み込み、protectInjectionWithoutQuote() という関数に渡します。この関数の主な防御策は、キーワードのブラックリストですが、"select" という文字列が検出されると、値を拒否するのではなく、$db->quote() で囲みます。しかし、その値はそのまま引用符なしの ORDER BY 句に連結されるため、引用符による保護は全く意味がありません。
この脆弱性が存在するコードに到達するには、以下の2つの条件が必要です。
1. セッションに保存されたソートのデフォルト値を設定するための最初のリクエスト。
2. ブラックリストの文字列チェックを通過するトリガーとなるコメント(例:-- xselect)を付加する。ただし、このコメントはペイロードの効果を変えない必要があります。
CVSS 4.0: 9.3 (重大) (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X)