MySQL-and and or フィルタリング

And and or の役割

AND は、両方の条件が同時に満たされることを意味します。たとえば、文字/数字をテストするには、and 1=1 および and 1=2 のステートメントが使用されます。

または、条件を満たすには十分です。たとえば、 or ステートメントは、エラーを報告して注入するときに使用されます。

バイパス方式

1.ユースケースバイパス

例: ?id=1' および D 1=1 --+

2.上書きバイパス

例: ?id=1' an and d 1=1 --+

3. and を && に置き換え、 or を || に置き換えます。

例: ?id=1' && 1=1 --+

            ?id=1' || 1=1 --+

&& と || で認識できない場合があるため、URL にトランスコードする必要があります。

例?id=1' && 1=1 --+ トランスコード後?id=1' %26%26 1=1 --+

         ?id=1' || 1=1 --+ トランスコード後?id =1'  %7C%7C 1=1 --+

 

実証事例

sqli-labs-master/Less-25

ソースコードを分析する

 1. preg_replace() 関数を使用して、$id 変数のパラメーターを確認します. このパラメーターに文字 '/or/' が含まれている場合は、i を使用して小文字に変換し、一致させます。入力は or または OR で、最終的に or になります。次に、空に置き換えます

2. preg_replace() 関数を使用して、$id 変数のパラメーターを確認します. このパラメーターに '/AND/' の文字列が表示されている場合は、i を使用して小文字に変換し、一致するようにします。入力は AND or and であり、最終的に and になります。次に、空に置き換えます

 

パラメータを入力するだけ?id=1

通常ページ

 

終了方法を確認するために、パラメーターの後に '一重引用符をスローします。

ページエコー 

''1'' リミット 0,1' 

'1 ' ' リミット 0,1

赤い部分が当方の入力で、閉じ方はシングルクォーテーションで決めます

url :?id=1'and 1=1 --+

The page report an error and echoes '1=1 -- ' LIMIT 0,1' at line 1 . 入力した と が空に置き換えられていることがわかります。

レプリケーションを使用してバイパスする

url:?id=1' および 1=1 --+

通常ページ

 

url:?id=1' および 1=2 --+

ページでエラーが報告されました。正常にバイパスされました

入力したステートメントがデータベースに取り込まれ、実行されたことを説明します 

 

&& を使用してバイパスします 

ページでエラーが報告され、入力した && が認識されず、URL エンコード変換が実行されました

 

URL: ?id=1' %26%26 1=1 --+

通常ページ

URL: ?id=1' %26%26 1=2 --+

ページ エラーは正常にバイパスされました 

おすすめ

転載: blog.csdn.net/m0_72755466/article/details/130061894