たとえば、オンラインで URL www.xx.com/news.php?id=3 のようなリンクを検索すると、末尾に ' 記号を追加するとエラーが報告されます。または、1=1 の場合はエラーが報告されます。そして、and 1=2、両方が返された場合 値が異なっていれば注入ポイントがあると判断できます
例えば、www.xx.com/news.php?id=3 ここは、私のSQLは次のようなものです select * from news where id='3' アドレスバーに追加します '記号の後にエラーが発生するのはなぜですか? and 1=1とand 1=で注入ポイントがあると判断できるのはなぜですか? 2?
' を追加すると、どのようなエラーが表示されるかわかりません。' を追加すると、渡された値が文字として扱われます。ただし、agic_quotes_gpc をオンにすると、
and 1 = 1 のように、引用符がエスケープされます。たとえば、
SELECT * FROM tbl_users
WHERE username='zhang3' OR 1=1 #' AND password = 'abc123' LIMIT 0。 ,1
# は mysql のコメント文字であるため、# の後のステートメントは実行されません。この行のステートメントを実装するには、次のようになります:
SELECT * FROM tbl_users
WHERE username='zhang3 'OR 1=1
このようにします。攻撃者は認証を回避できる