1

Accunetix によって生成された php アプリのセキュリティ評価レポートに取り組んでいます。

レポートは、SQL インジェクションの脆弱性を主張しています。アプリは MySQL を使用した PHP です。攻撃を行っていると書かれているヘッダーは次のとおりです (具体的には、accept-language ヘッダー)。

GET /user_login.php HTTP/1.1
user-agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
accept-language: 1;select pg_sleep(1); --
X-Requested-With: XMLHttpRequest
Cookie: PHPSESSID=35kno6h8kmkbin973q02gojp82; uniqueuser=1382404387
Host: xxx.xxx.com
Connection: Keep-alive
Accept-Encoding: gzip,deflate

アプリのどこにも「accept-language」または「accept_language」が見つかりません。また、pg_sleep()MySQL 関数ではありません。

PHP の既知の脆弱性を検索しましたが、何も見つかりませんでした。これは誤検知ですか、それとも何か不足していますか?

4

2 に答える 2

3

Accept-Languageクライアントのブラウザから送信されたリクエスト ヘッダーです。

Accunetixは、悪意のあるコードを挿入して (ハッカーを模倣した) セキュリティ全体を見つけて、アプリケーションがそれらに対して脆弱であるかどうかをテストすることによって、これらのヘッダーを操作しようとしていました。

Accept-language ヘッダーまたは DB クエリでリクエスト ヘッダーを使用していない場合は、おそらく誤検知です。念のため、そのリクエストのレスポンスを見て、レスポンスが正常であればOKです。

于 2013-11-04T23:05:04.333 に答える
1

コードはおそらくそのヘッダーを、言語を選択するためのソースとして扱います。これは、データベース クエリを介して行われます。また、クエリの生成時に、HTTP ヘッダーの内容が正しく解析されません。

これが表示されない理由は、HTTP ヘッダーのフェッチが間接的に行われるためである可能性があります ( のように$_SERVER[$language_header])。

于 2013-11-04T22:56:20.107 に答える