🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

2549閲覧

HTTPリクエストスマグリング脆弱性はどうすれば解消できますか?

qwe001

総合スコア133

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/03/10 06:50

編集2021/03/10 08:16

Burp Suite Professionalで脆弱性検査を実行したところ、
危険度:高、信頼度:暫定として、HTTP Request Smugglingという脆弱性が
多数検出されました。

ネットで解決策を探しましたが、具体例が見つからず、困っております。

BurpSuiteに書いてある解決策として、
HTTP2対応をすれば良いとありました。

原文

Issue remediation

You can resolve all variants of this vulnerability by configuring the front-end server to exclusively use HTTP/2 to communicate to back-end systems, or by disabling back-end connection reuse entirely. Alternatively, you could ensure all servers in the chain run the same webserver software with the same configuration.
Specific instances of this vulnerability can be resolved by reconfiguring the front-end server to normalize ambiguous requests before routing them onward, or by configuring the back-end server to reject the message and close the connection when it encounters an ambiguous request.

日本語翻訳

課題の改善

この脆弱性のすべてのバリエーションを解決するには、フロントエンドサーバがバックエンドシステムとの通信に HTTP/2 を排他的に使用するように設定するか、バックエンド接続の再利用を完全に無効にする必要があります。あるいは、チェーン内のすべてのサーバが同じ設定で同じウェブサーバソフトウェアを実行していることを確認することもできます。
この脆弱性の特定のインスタンスは、フロントエンドサーバを再設定して曖昧なリクエストを正常化してからルーティングするか、バックエンドサーバが曖昧なリクエストに遭遇したときにメッセージを拒否して接続を閉じるように設定することで解決できます。

ですが、私の設定にミスがあるのか、HTTP2対応した後も変わらずこのエラーは検出されます。

どうすれば、Burp Suiteからこの脆弱性が検出されないようにできますか?
例えばApacheをアップデートしたら検出されなくなったとか、PHPをアップデートしたら解決したとか、そういった解決に向けて行ったことを教えて頂けると嬉しいです。

ご回答お待ちしております。

Apacheのバージョンは2.4.46 最新版です

Burp Suiteのレスポンス内容を掲載します

Summary Severity: High Confidence: Firm Host: https://***.com Path: /contact/ Request 1 POST /contact/?1FhZ=1515077263 HTTP/1.1 Host: ***.com Cookie: csrf_cookie_name=7921977d08d544074d45d429fdfb9958; ci_session=g6j4id1s7nv740il3cnrh7sqj5oq8gfe; _ga=GA1.2.2126658472.1615355983; _gid=GA1.2.901875414.1615355983; _gat_gtag_UA_39713116_1=1 Upgrade-Insecure-Requests: 1 Referer: https://***.com/ Accept: */* Accept-Language: en-US,en-GB;q=0.9,en;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Cache-Control: max-age=0 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Transfer-Encoding: chunked Content-Length: 31 Connection: keep-alive f 49vb0=x&fyxe8=x 1 Z Q Response 1 HTTP/1.1 302 Found Content-Type: text/html; charset=UTF-8 Connection: close Date: Wed, 10 Mar 2021 06:28:07 GMT Server: Apache Set-Cookie: csrf_cookie_name=7921977d08d544074d45d429fdfb9958; expires=Wed, 10-Mar-2021 08:28:06 GMT; Max-Age=7200; path=/; HttpOnly Location: https://***.com/contact/?1FhZ=1515077263 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff X-Cache: Miss from cloudfront Via: 1.1 ***.cloudfront.net (CloudFront) X-Amz-Cf-Pop: NRT51-C1 X-Amz-Cf-Id: 1hLHP2aK3qg3GkLxrp0d-Wq1n8EKdfF1kl0qI4fmRof_TywjPbQzCA== Content-Length: 15387 <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=no, maximum-scale=1.0"> <me ...[SNIP]... Request 2 POST /contact/?GufP=341181186 HTTP/1.1 Host: ***.com Cookie: csrf_cookie_name=7921977d08d544074d45d429fdfb9958; ci_session=g6j4id1s7nv740il3cnrh7sqj5oq8gfe; _ga=GA1.2.2126658472.1615355983; _gid=GA1.2.901875414.1615355983; _gat_gtag_UA_39713116_1=1 Upgrade-Insecure-Requests: 1 Referer: https://***.com/ Accept: */* Accept-Language: en-US,en-GB;q=0.9,en;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Cache-Control: max-age=0 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Transfer-Encoding: chunked Content-Length: 92 Connection: keep-alive f ev4x4=x&9ms6a=x 0 GET /ik64qiml4zxupxw7fi2ldrmn4ea7yy3mwqkg76vv HTTP/1.1 X-Ignore: X Response 2 HTTP/1.1 302 Found Content-Type: text/html; charset=UTF-8 Connection: close Date: Wed, 10 Mar 2021 06:28:25 GMT Server: Apache Set-Cookie: csrf_cookie_name=7921977d08d544074d45d429fdfb9958; expires=Wed, 10-Mar-2021 08:28:25 GMT; Max-Age=7200; path=/; HttpOnly Location: https://***.com/contact/?GufP=341181186 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff X-Cache: Miss from cloudfront Via: 1.1 ***.cloudfront.net (CloudFront) X-Amz-Cf-Pop: NRT51-C1 X-Amz-Cf-Id: 4dYYH9LSKzWegGYiF-EN3v1vcQe8hHnyBz5rtHvjeBNZwv91N65Pvg== Content-Length: 15387 <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=no, maximum-scale=1.0"> <me ...[SNIP]... Request 3 POST /contact/?1FhZ=1515077263 HTTP/1.1 Host: ***.com Cookie: csrf_cookie_name=7921977d08d544074d45d429fdfb9958; ci_session=g6j4id1s7nv740il3cnrh7sqj5oq8gfe; _ga=GA1.2.2126658472.1615355983; _gid=GA1.2.901875414.1615355983; _gat_gtag_UA_39713116_1=1 Upgrade-Insecure-Requests: 1 Referer: https://***.com/ Accept: */* Accept-Language: en-US,en-GB;q=0.9,en;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Cache-Control: max-age=0 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Transfer-Encoding: chunked Content-Length: 31 Connection: keep-alive f 49vb0=x&fyxe8=x 1 Z Q Response 3 HTTP/1.1 504 Gateway Time-out Content-Type: text/html Content-Length: 1033 Connection: close Server: CloudFront Date: Wed, 10 Mar 2021 06:28:55 GMT X-Cache: Error from cloudfront Via: 1.1 ***.cloudfront.net (CloudFront) X-Amz-Cf-Pop: NRT51-C1 X-Amz-Cf-Id: oybcbqhcYo6R3BvLlqWFnN_Xur_7714qhIErSVuItd0rVUBNs9IIaQ== <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR ...[SNIP]...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/03/10 07:00

> 危険度:高、信頼度:暫定として、HTTP Request Smugglingという脆弱性が 多数検出されました。 1例でも構いませんが、脆弱性の詳細を示していただくことはできますか?
guest

回答2

0

Apacheがだめなら、PHPということになりますが、
たとえば以下の記事などを見ると、PHP側の問題に起因するケースもあるようです。
https://blog.tokumaru.org/2018/09/cve-2018-17082-cache-poisoning.html

Burp Suiteの情報ではリクエストでContent-LengthとTransfer-Encoding chunkedの両方を指定しているようですので関係している可能性はあります。

PHPをアップデートしたら解決した

試してみられるのも良い考えに思われました。

投稿2021/03/16 04:37

ohgrkrs

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qwe001

2021/03/16 06:59

ご回答ありがとうございます。情報が小出しとなってしまい申し訳ございません。私の環境は PHP 7.4.15 を使ってました。実はこのエラーは去年の二月ぐらいに、BurpSuiteがHRS脆弱性を検出するアップデートを行ってからずっと起きていて、PHP 5.6→PHP7.1→PHP7.2→PHP7.4へアップデートもしていますが、それでも解消されずお手上げだったという経緯があります。皆様の環境では再現しないものなんでしょうか…?
guest

0

Apacheをお使いでしたら、とりあえず最新版にアップデートしましょう。

HTTP Request Smuggling in apache2 | Snyk

投稿2021/03/10 07:17

編集2021/03/10 07:18
hiok

総合スコア595

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qwe001

2021/03/10 08:10

ご回答ありがとうございます。Apacheのバージョンは2.4.46でした。 公式サイトを見る限り、これが最新版だと思いますが、他に何をすれば解決しますか?
hiok

2021/03/10 10:20

CDN、ロードバランサ―などをお使いであれば、それら含めてシステム構成や設定内容を把握した上で、対策・対処方法を検討する必要があるかもしれません。 Webサーバーについては、OS含めたバージョン・脆弱性のチェックと必要に応じてアップデートしましょう。 もしきちんと対応したいのでしたら、こういった場ではなく、しかるべきところに相談された方がよいかも。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問