Web サイトの侵入テスト中に (はい、合法的に)、SQL インジェクションがポップアップしましたが、現在それを使用する方法がわかりません。クエリ文字列は次のようになり、挿入ポイントは値の後の最初の _ になります。
query = 'SELECT item.a
FROM favitem item
WHERE ( item.a =?) AND (item.b=? )', values = [123456789_, 987654321]
シンプルな
, 1] UNION SELECT banner FROM v$version WHERE banner LIKE 'Oracle%'; --
値を返しませんが、成功したことを示します。まったく一致する可能性が低いランダムな文字列であっても、「%」が含まれている場合は常に成功します。それが示すときLIKE 'Oracle'
(なし%
)、それはエラーを返します。これが常に成功する理由は%
何ですか?