私はSQLインジェクションの分野の初心者です。助けていただければ幸いです。
シナリオ:脆弱なWebアプリケーション。
次のようなURLがあるとします。
http://www.site1.com/cms/login.php
また、サイトにアクセスするには、次の資格情報を提供する必要があるとします。
ユーザー名:foo、パスワード:bar
したがって、上記のURLは次のようになります。
http://www.site.com/cms/login.php?username=foo&password=bar
次にペイロードを注入すると、次の'OR'1'='1
ように変更されます。
http://www.site.com/cms/login.php?username=foo&password=bar'OR'1'='1
それは私には十分明らかですが、私の懸念は、対応するSQLクエリ(バックエンドRDBMSによって処理されて送信されるクエリ)は次のようになる必要があると言われたことです。
SELECT userid
FROM CMSUsers
WHERE user = 'foo'AND password = 'bar' OR'1'='1';
'1'='1'
は常にTRUEであるため、クエリはトートロジーです。
しかし、ペイロードは'OR'1'='1
そうであり、クエリの条件ステートメントは異なっているようですOR'1'='1';
('
ペイロードの最後の1の後にアクセントはありません)
私の疑いは理にかなっていますか?
どんな助けでも大歓迎です。