0

助けが必要です。

SQL インジェクション メソッドを使用して Web サイトのデータベース名を取得し、テーブルからすべてのデータを取得できたとします。基本的な SQL クライアントを使用してサーバー上で識別せずにそのデータを変更することは可能ですか?

ありがとうございました。

(答えがすべてのデータベースタイプに一般的であればよいのですが、そうでない場合、問題のデータベースのバージョンはmysqlです)

4

2 に答える 2

2

これは、データベース アカウントに付与された権限、Web サーバーがデータベースへの接続に使用するデータベース ユーザー、および SQL インジェクションの脆弱性の性質によって異なります。

すべてのテーブルからすべてのデータを抽出できるほど脆弱性が開いている場合、Web サイトは手順の作成と変更、およびテーブルに対する INSERT/UPDATE/DELETE 操作に対して脆弱である可能性があります。(SQL インジェクションに対して脆弱な Web サイトを作成するのと同じ不注意と注意不足です。これは、多くの場合、データベース権限の決定に専念するのと同じ種類の不注意です... (単に「ルート」を使用するか、またはすべてのオブジェクトに対するすべての権限を持つデータベース アカウントを使用してください...)

この種のインジェクションに対して脆弱な Web サイトを作成することは十分に可能であり、比較的簡単です。

(また、StackOverflow の質問と回答には、この方法で Web サイトを脆弱にするために必要な種類のコードの例がたくさんあります。SQL インジェクションの脆弱性は氷山の一角にすぎません... Web サイトがこのように安全でない場合、それは他の脆弱性があることはほぼ確実です (SQL インジェクションはたまたま悪用されやすい脆弱性です)。

そして、開発者が慣れ親しんでいるこれらの安全でないパターン...

(結局のところ、私が開発しているこの Web サイトは、「開発/教育/私の使用/その他のみを目的としています」、「セキュリティは問題ではありません」、または「セキュリティの脆弱性については、すべて取得した後に対処します。開発し、デバッグし、テストした」ヤダ、ヤダ、ヤダ

...安全でないコードを書くためのこれらのパターンは、しっかりと定着しています。

于 2014-09-28T05:18:53.150 に答える