Họ đã tìm thấy một phiên bản mới của cuộc tấn công Buôn lậu Yêu cầu HTTP

Các hệ thống web nơi giao diện người dùng chấp nhận kết nối qua HTTP / 2 và chuyển chúng đến phần phụ trợ qua HTTP / 1.1 giờđã được tiếp xúc với một phiên bản mới của cuộc tấn công "HTTP Request Smuggling", Nó cho phép bằng cách gửi các yêu cầu của khách hàng được thiết kế đặc biệt, để phân chia nội dung của các yêu cầu của những người dùng khác được xử lý trong cùng một luồng giữa giao diện người dùng và phụ trợ.

Cuộc tấn công có thể được sử dụng để đưa mã JavaScript độc hại vào trong một phiên với một trang web hợp pháp, bỏ qua các hệ thống hạn chế truy cập và chặn các thông số xác thực.

Tác giả của nghiên cứu đã chứng minh khả năng tấn công các hệ thống Netflix, Verizon, Bitbucket, Netlify CDN và Atlassianvà nhận được 56.000 đô la trong các chương trình thưởng cho việc xác định các lỗ hổng bảo mật. Vấn đề cũng đã được xác nhận trong các sản phẩm F5 Networks.

Vấn đề ảnh hưởng một phần đến mod_proxy trên máy chủ Apache http (CVE-2021-33193), các bản sửa lỗi dự kiến ​​trong phiên bản 2.4.49 (các nhà phát triển đã được thông báo về sự cố vào đầu tháng 3 và nhận được 1.21.1 tháng để khắc phục). Trong nginx, khả năng chỉ định đồng thời tiêu đề "Độ dài nội dung" và "Mã hóa truyền" đã bị chặn trong phiên bản trước (XNUMX).

Nguyên lý hoạt động của phương pháp mới so khớp các yêu cầu trong lưu lượng truy cập tương tự như lỗ hổng được phát hiện bởi cùng một nhà nghiên cứu hai năm trước, nhưng nó bị giới hạn ở các giao diện chấp nhận yêu cầu qua HTTP / 1.1.

Cuộc tấn công "HTTP Request Smuggling" cổ điển dựa trên thực tế là giao diện người dùng và phụ trợ diễn giải việc sử dụng tiêu đề "Độ dài nội dung" HTTP khác nhau (xác định tổng kích thước của dữ liệu trong yêu cầu) và "Mã hóa truyền: phân đoạn" ( cho phép bạn truyền dữ liệu theo từng phần) ...

Ví dụ: nếu giao diện chỉ hỗ trợ "Độ dài nội dung" mà bỏ qua "Mã hóa truyền: bị phân mảnh", kẻ tấn công có thể gửi yêu cầu có chứa tiêu đề "Độ dài nội dung" và "Mã hóa truyền: bị phân mảnh", nhưng kích thước vi "Độ dài của nội dung" không khớp với kích thước của chuỗi phân đoạn. Trong trường hợp này, giao diện người dùng sẽ xử lý và chuyển hướng yêu cầu theo "Độ dài nội dung" và chương trình phụ trợ sẽ đợi khối hoàn thành dựa trên "Mã hóa chuyển: phân đoạn".

Không giống như giao thức HTTP / 1.1 văn bản, được phân tích cú pháp ở cấp dòng, HTTP / 2 là một giao thức nhị phân và điều khiển các khối dữ liệu có kích thước xác định trước. Tuy nhiên, HTTP / 2 sử dụng tiêu đề giả tương ứng với các tiêu đề HTTP bình thường. Khi tương tác với chương trình phụ trợ sử dụng giao thức HTTP / 1.1, giao diện người dùng dịch các tiêu đề giả này trong tiêu đề HTTP / 1.1 HTTP tương tự. Vấn đề là phần phụ trợ đưa ra quyết định về việc phân tích quá trình truyền dựa trên tiêu đề HTTP do giao diện người dùng đặt, mà không cần biết các thông số của yêu cầu ban đầu.

Ngay cả ở dạng tiêu đề giả, các giá trị "Độ dài nội dung" và "mã hóa truyền" chúng có thể được phát trực tuyến, mặc dù chúng không được sử dụng trong HTTP / 2, vì kích thước của tất cả dữ liệu được xác định trong một trường riêng biệt. Tuy nhiên, khi chuyển đổi một yêu cầu HTTP / 2 thành HTTP / 1.1, các tiêu đề này sẽ chuyển qua và có thể gây nhầm lẫn với phần phụ trợ.

Có hai lựa chọn tấn công chính: H2.TE và H2.CL, trong đó phần phụ trợ bị đánh lừa bởi mã hóa truyền không chính xác hoặc giá trị độ dài nội dung không tương ứng với kích thước thực của phần thân yêu cầu được giao diện người dùng nhận được thông qua Giao thức HTTP / 2.

Ví dụ về cuộc tấn công H2.CL, kích thước không chính xác được chỉ định trong tiêu đề giả độ dài nội dung khi gửi yêu cầu HTTP / 2 tới Netflix. Yêu cầu này dẫn đến việc bổ sung tiêu đề Độ dài nội dung HTTP tương tự khi truy cập phần phụ trợ thông qua HTTP / 1.1, nhưng vì kích thước trong Thời lượng nội dung ít hơn thực tế, một phần dữ liệu trong hàng đợi được xử lý như phần bắt đầu của yêu cầu tiếp theo.

Công cụ Tấn công đã được thêm vào Bộ công cụ của Burp và có sẵn dưới dạng tiện ích mở rộng Turbo Intruder. Proxy web, bộ cân bằng tải, bộ tăng tốc web, hệ thống phân phối nội dung và các cấu hình khác trong đó các yêu cầu được chuyển hướng trong lược đồ frontend-backend dễ gặp sự cố.

Fuente: https://portswigger.net


Nội dung bài viết tuân thủ các nguyên tắc của chúng tôi về đạo đức biên tập. Để báo lỗi, hãy nhấp vào đây.

Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.