0

ASP.NETと を使用して Web サイトを作成しましたSQL Server。現在、Web サイトの脆弱性をテストしています。さまざまな入力に対して Web をテストしたところ、無効な入力は拒否されました。ただし、次のようないくつかの入力がadmin' or 1=1--あります。Web サイトに入ると、永遠にロードし続け、タイムアウトします。SQL Injectionこれは脆弱性を示していますか?

PS: 文字列を連結するのではなく、パラメーター化されたクエリを使用する宿題をしましSQL InjectionSQL Map

4

2 に答える 2

1

1=1 -- データベース内のすべてのユーザーを選択する可能性があります。大量のユーザーがいる場合、ハングする可能性があります。そうでなければ、何か他のことが起こっています。

全体として、Sqlmap などの自動化された SQL インジェクション ツールを使用して、SQL インジェクションについて Web サイトをチェックする必要があると思います。これはオープンソースであり、Python でコーディングされています。また、Acunetix を使用して、Web サイト全体をスキャンして、あらゆる種類のセキュリティの脆弱性を見つけることもできます。

于 2013-01-08T01:31:11.987 に答える
0

あなたが作成した Web サイトだと言っているので、ログインの SQL ステートメントに注意する必要があります。

たとえば、SQL ステートメントが次のようになっているとします。

SELECT username, passwd  FROM table_name WHERE username='<userinput>' AND passwd='<userinput>';

ログインフォームに入力する内容は次のとおりです。上記をクエリとして、上記のステートメントを真にするさまざまな方法を考えてみてください。

例:

コメントがエスケープされていないと仮定します。

'有効なユーザー名' AND '1'='1'-- //

' または '1'='1'-- //

コメント文字がエスケープされているか機能しない場合:

' または '1'='1

これらは、ログイン ページでの SQLi に対するいくつかの基本的な攻撃ベクトルです。詳細については、このリンクのチートシートを参照してください。

あなたは開発者なので、コードを確認することは、SQLi が可能かどうかを理解するためのより良い方法です。私はあなたにペンテスターの洞察を与えたかっただけです。

于 2014-07-06T18:35:26.640 に答える