IIS CGI HTTP_PROXY tiêu đề yêu cầu có thể được chuyển hướng

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 3179800
Triệu chứng
Khi bạn sử dụng tính năng giao diện cổng chung IIS (CGI) để lưu trữ một chương trình thực thi sử dụng thư viện số để chuyển yêu cầu, yêu cầu có thể được misdirected dựa trên sự hiện diện của một tiêu đề yêu cầu "PROXY". Một số nền tảng ứng dụng web được xác định sử dụng thư viện này. Điều này bao gồm PHP, Python và đi, những người khác.
Nguyên nhân
CGI là một giao diện cho phép Máy chủ Web ứng dụng máy chủ chạy quá trình thực thi. Khi một yêu cầu được nhận bởi Máy chủ Web, máy chủ khởi động trình mới xử lý đơn yêu cầu đó. Khi hoàn thành yêu cầu trình thoát. Để quá trình truy cập vào dữ liệu yêu cầu, tiêu đề yêu cầu được bao gồm như biến môi trường có "HTTP_" prepended tên của họ. Do đó, quá trình CGI cho yêu cầu có một tiêu đề có tên "Proxy" đã biến môi trường "HTTP_PROXY" có giá trị tương tự như tiêu đề yêu cầu.

dòng lệnh cURL và libraryare thường được sử dụng loại enablevarious ứng dụng cho yêu cầu cho các loại máy chủ, bao gồm các Máy chủ Web. Thư viện này có thể được cấu hình bằng cách sử dụng tham số dòng lệnh hoặc nó có thể đọc các tham số cấu hình từ các biến môi trường của quá trình lưu trữ. "HTTP_PROXY" là một trong nhiều cấu hình tham số được sử dụng cURL. "HTTP_PROXY" được sử dụng cURL để gửi yêu cầu HTTP đến cấu hình proxy.

Lưu ý: Điều này là không liên quan đến "HTTP_PROXY" sự hiện diện của một tiêu đề yêu cầu khách hàng.

Khi Rot được lưu trữ trong trình CGI và có quá trình biến môi trường được đặt tên là "HTTP_PROXY", cURL sử dụng giá trị sendrequested dữ liệu thông qua proxy HTTP có giá trị được chỉ định trong các biến môi trường. Điều này xảy ra vì cURL hy vọng rằng "HTTP_PROXY" là một cấu hình chỉ không là một tiêu đề yêu cầu khách hàng.
Cách giải quyết khác
Để khắc phục sự cố này, không sử dụng CGI trên máy chủ đang chạy IIS. CGI là một giao diện cũ chủ yếu được thay thế bằng giao diện mới và hoạt động khác liên quan. Cụ thể, PHP, Python và đi sẽ được lưu trữ qua FastCGI trên IIS. FastCGI không sử dụng các biến môi trường tiêu đề yêu cầu khách hàng và không có vấn đề này. Tuy nhiên php, một số ứng dụng có thể sử dụng chức năng getenv() PHPs để lấy các biến môi trường. Ngay cả khi PHP không được lưu trữ trong trình CGI, nó sao chép CGI hiện bằng cách tiêm giá trị yêu cầu đầu vào bộ dữ liệu có sẵn cho chức năng getenv() . Nếu bạn sử dụng một ứng dụng PHP truy HTTP_PROXY theo cách này, mitigations sau bỏ giá trị phần đầu hoặc từ chối yêu cầu với một tiêu đề PROXY có hiệu lực.

Nếu bạn phải sử dụng CGI cho một số lý do, chặn yêu cầu chứa tiêu đề yêu cầu tên "Proxy" hoặc xóa giá trị của tiêu đề. Điều này là do "Proxy" không phải là tên tiêu đề yêu cầu tiêu chuẩn và trình duyệt sẽ thường không gửi.

Để ngăn chặn yêu cầu chứa tiêu đề Proxy (giải pháp ưa thích), chạy dòng lệnh sau đây:
appcmd đặt cấu hình /section:requestfiltering / + requestlimits.headerLimits. [tiêu đề = 'proxy', sizelimit = '0']

Lưu ý: Appcmd.exe không thường trong đường dẫn và có thể được tìm thấy trong mục tin thư thoại %systemroot%\system32\inetsrv

Để xoá giá trị của tiêu đề, bạn có thể sử dụng quy tắc ghi lại URL sau:
<system.webServer>    <rewrite>        <rules>            <rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">                <match url="*.*" />                <serverVariables>                    <set name="HTTP_PROXY" value="" />                </serverVariables>                <action type="None" />            </rule>        </rules>    </rewrite></system.webServer>

Lưu ý: URL Rewrite là một miễn phí thêm vào IIS và không được bao gồm trong IIS cài đặt chuyên biệt mặc định.

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 3179800 - Xem lại Lần cuối: 07/21/2016 16:05:00 - Bản sửa đổi: 2.0

Windows 10, Windows 10 Version 1511, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Essentials, Windows Server 2012 R2 Foundation, Windows 8.1 Enterprise, Windows 8.1 Pro, Windows 8.1, Windows RT 8.1, Windows Server 2012 Datacenter, Windows Server 2012 Standard, Windows Server 2012 Essentials, Windows Server 2012 Foundation, Windows Server 2008 R2 Service Pack 1, Windows 7 Service Pack 1, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 2

  • atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability kbmt KB3179800 KbMtvi
Phản hồi