1

次の脆弱性が発生したとき、サイトをスキャンしていました: CGI Generic SQL Injection

nessus は、攻撃者がこの欠陥を悪用して、認証を回避したり、機密データを読み取ったり、リモート データベースを変更したり、さらにはリモート オペレーティング システムを制御したりする可能性があると述べています。

そこで、読み続けたところ、脆弱性が次のコードにあることがわかりました。

POST HTTP メソッドを使用して、Nessus は次のことを発見しました。

  • 次のリソースは、SQL インジェクションに対して脆弱である可能性があります。

  • /LoginTeacherForm.aspx CGI の '_codeTextBox' パラメータ:

    /LoginTeacherForm.aspx [ loginButton=Login& _VIEWSTATE=dDwtMTU2NDIxMDkwN Ts7Pg%3d%3d&btnChangePassword=Wijzig%20Pincode&_pinCodeTextBox=&_codeTex tBox='+convert(int,convert(varchar,0x7b5d))+']

-------- 出力 --------

 Exception Details: System.Data.SqlClient.SqlException: String or
binary data would be truncated.
The statement has been terminated. 

しかし、そのコードを貼り付けるとエラーが表示されるだけなので、攻撃者がこの脆弱性をどのように悪用できるのか疑問に思っています。

だから私の質問は、攻撃が実際にサイトにハッキングしてログインなどをバイパスする方法です(もちろん教育目的のみ)

4

2 に答える 2

1

Nessus リクエストが原因で、ページが長すぎる文字列をフィールドに挿入する誤検知のようです。Nessus は、エラーが SQL サーバー エラーであることを検出し、SQL インジェクションの脆弱性である可能性があると述べています。

_codeTextBox=自分自身をテストするには、一重引用符に設定してリクエストを試して、まだSqlException. その場合は、これを 2 つの一重引用符に修正し、エラーが解消された場合は、おそらく脆弱です。

于 2013-08-27T11:32:35.740 に答える