Hello there, ('ω')ノ
SQLインジェクションでDBスキーマ定義をすべて引き出すとのことで。
ちょっと面倒な作業だなと。
まずは、xxxを入力してエラー表示でもさせてみて。
レスポンスを見ると9つの項目が返ってきているようで。
しかしながら、これだけではクリアできていないようで。
次にappleで検索してみると。
リクエスト内容からパラメータが確認できず。
とりあえず、パラメータにappleを入力してみるとレスポンスが返ってきて。
シングルクォーテーションを追加するとエラーが表示されて。
ただ、ここでSQL文が確認できたので。
SELECT * FROM Products WHERE ( (name LIKE '%apple'%' OR description LIKE '%apple'%') AND deletedAt IS NULL) ORDER BY name
まずは、sqlliteからテーブルスキーマ(構造)を確認するには。
下記のテーブルがあって。
sqlite_master
さきほどのエラーになったSQL文をもとに一度、appleのあとでSQL文を閉じて。
そのあとに、unionでもう一つのsql文を追加して。
不要なsql文はコメントアウトして実行してみると。
SELECT * FROM Products WHERE ( (name LIKE '%apple') ) union select * from sqlite_master --
%' OR description LIKE '%apple'%') AND deletedAt IS NULL) ORDER BY name
UNIONの左側と右側のSELECTには同じ数の結果列がありませんとのことで。
はじめに返ってきた項目数が9つだったので*を明示的に変更すると成功して。
さらに、UNION句でsqlite_masterテーブルのsqlカラムを適当に表示させることに。
ようやくクリアできた。
Best reagrds, (^^ゞ