2017-01-31 11 views
1

私のテストサイトの1つをAcunetixでスキャンしたところ、閉じられていない引用符が原因でSQLインジェクションの脆弱性があることがわかりました。既知のSQLインジェクションの脆弱性、今は何ですか?

フォームに1'"と入力すると、エラーメッセージが表示されます。

そして、私はURLで

"...MessageHandler.asmx/ChangePassword?PIN=1%27"&CurrentPwd=1&newPwd=1"

を入力すると、私はエラーメッセージが表示されます。

私の質問は、どこからここを訪れて、もう少し詳しく調べるのですか?私は注射に関するチュートリアルを読んだことがありますが、私はこの点から何をすべきか分かりません。私は注射脆弱性があることを知っていますが、今は何ですか?

他のどのようなデータが表示されるのか、私の次のステップは何でしょうか?

+0

攻撃ベクトルを悪用する、または修正することに関心がありますか? –

+0

https://www.owasp.org/index.php/Testing_for_SQL_Injection_(OTG-INPVAL-005) –

+0

このテストサイトはどのようなプログラミング言語で書かれていますか? –

答えて

0

Microsoft SQL Serverでは、SQLインジェクションはストアドプロシージャを使用して無効にされます。送られたコマンドはパラメータとして実行されません。埋め込みSQLをストアドプロシージャに置き換えると、SQLインジェクションの脅威が排除されます。 GUIの検証ルーチンを通じて入力をサニタイズすることは、まだ良い習慣ですが、経験豊富なハッカーが簡単に渡すことができるので、埋め込みSQLを削除することも重要です。

+0

ストアドプロシージャは、注入攻撃を緩和する唯一の手段ではなく、ストアドプロシージャを使用することによって、そのような攻撃から免除されることを保証する唯一の手段でもありません。 Prepared Statementsを使用して埋め込みSQLを使用し、ストアドプロシージャを使用せずに注入攻撃からよりよく保護することができます。 – alroc

関連する問題