WebサーバーでHTTP TRACEをテストするにはどうすればよいですか?
HTTP TRACEメソッドが無効になっていることを確認する方法をテスターにトレーニングする必要があります。
理想的には、HTTP TRACEコマンドにWebサーバーの応答を返すために、https接続を開始するためにFirebugに貼り付けるスクリプトが必要です。
背景:
私たちのセキュリティペンテスターは、HTTP TRACEの脆弱性を特定し、それが修正されたことを証明する必要があります。
参考文献:
私が考えることができる最も簡単な方法は cURL を使用することです(これはスクリプト可能です)。
curl -v -X TRACE http://www.yourserver.com
TraceEnable Off
を使用してApacheサーバーに対して実行すると、HTTP/1.1 405 Method Not Allowed
が正しく返されます(Apache 2.2.22でテスト済み)
これは、cURLがSSL層に提供される正しい情報を持っている場合、HTTPSサイトでも機能します。これは怠惰な男のグーグルチェックです
curl --insecure -v -X TRACE https://www.google.com/
...接続をネゴシエートし(証明書チェーンは検証しませんが、TRACE
ステータスを確認する必要があるため、ここでは問題ではありません)、405と応答します。
* Server certificate:
* subject: C=US; ST=California; L=Mountain View; O=Google Inc; CN=www.google.com
* start date: 2013-02-20 13:34:56 GMT
* expire date: 2013-06-07 19:43:27 GMT
* subjectAltName: www.google.com matched
* issuer: C=US; O=Google Inc; CN=Google Internet Authority
* SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> TRACE / HTTP/1.1
> User-Agent: curl/7.25.0 (x86_64-suse-linux-gnu) libcurl/7.25.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25 libssh2/1.4.0
> Host: www.google.com
> Accept: */*
< HTTP/1.1 405 Method Not Allowed
2つの方法があります。
ステップ1: openssl s_client -connect example.com:443
ステップ2 :
TRACE / HTTP/1.1
Host: example.com
(Enterキーを2回押す)
または
OPTIONS / HTTP/1.1
Host: example.com
(Enterキーを2回押します)(これらをすばやく貼り付ける必要がある場合があるため、タイプアウトではなくコピーして貼り付けます)ステップ3:出力を確認します。間違いがない場合は、エラー400が表示されます。
使用できるもう1つのツールはgnutlsです。
Burp Suite または Zap のようなproxyを使用して、いくつかの簡単な手順に従うことができます。
GET /index.php HTTP/1.1
)それを傍受します。応答にリクエスト全体が含まれている場合、TRACEは有効であり、適切に機能しています。
他の誰もが言ったことはテストを送る限り正確でしたが、それが脆弱であるかどうかの正しい識別を誰も与えていません。 TRACE/TRACK要求に対するmodの書き換えは言うまでもなく、サーバーによって応答が異なります。 TRACEとTRACKの両方の脆弱性を特定する方法は2つあります。これらは、誤検知または誤検知(私が知っていたもの)を与えることなく機能しているようです。
1)ターゲットが400未満または600以上のステータスコードを返す
2)ターゲットは、渡されたヘッダーを返します。
netcat
を使用して実行できます
nc www.myhost.com 80
TRACE /mypage.html HTTP/1.1
Host: www.myhost.com
出力の例は
HTTP/1.1 405 Method Not Allowed
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1
Set-Cookie: JSESSIONID=rfyji7QBFFld7HwMGLVM+F8s.undefined; Path=/
Content-Type: text/html;charset=utf-8
Content-Length: 1125
Date: Fri, 06 Mar 2015 06:06:29 GMT
ウェブサイトの熟練したユーザーから提供されたすべての素晴らしい答えに感謝します。質問のリファレンスを見て、OWASP
について言及しました。 owaspとesp owasp live cdの使用に慣れていると思います。
。このツールには、実際にはhttpリクエストフィールドがあり、httpヘッダー全体のカスタム生成を可能にするフィールド以上のものがあります。
trace
を選択してヘッダーオプションを定義し、[移動]をクリックするだけです。応答は以下のテキストに表示されます。
このツールを他のツールよりもお勧めする理由は、このツールは、アプリケーションのセキュリティの概念が他のどの概念よりも逆になっているコミュニティによって提供されるためです。これらのツールは、専門家によってテストおよび検証されています。詳細 owasp ref
ALTERNATE METHOD
http://yehg.net/pentest/CAL9000/#httpRequests
ツールのオンライン版です。
トレース上の注意
Firefoxは現在(xmlHttpRequestを介して)TRACE関数をサポートしていません。 CAL9000は、サーバー側スクリプトからTRACE情報を取得します。また、リソース( http://www.blah.com/index.html )に送信された要求は、必ずしもディレクトリに送信されたものと同じ応答を生成するわけではないことに注意してください(- http://www.blah.com/js/ )、同じサイトにある場合でも