- Lỗi HTTP Parameter Pollution khai thác các tham số trùng lặp để thay đổi logic của các ứng dụng web bằng cách tận dụng thứ tự ưu tiên giá trị.
- Tác động của nó trải rộng từ những lỗi nhỏ đến việc bỏ qua xác thực và né tránh tường lửa ứng dụng web (WAF), thậm chí ảnh hưởng đến cả các nhà cung cấp lớn.
- Khả năng phát hiện tự động còn hạn chế, do đó cần kết hợp các công cụ chuyên dụng, kiểm thử thủ công và các quy trình phát triển an toàn tốt.
- Hiểu cách mỗi ngăn xếp xử lý các tham số lặp lại là chìa khóa để giảm thiểu HPP và tránh sự không nhất quán giữa quá trình xác thực và sử dụng thực tế.
Khi nói về bảo mật ứng dụng web, nhiều người chỉ nghĩ đến... Lỗi tấn công SQL Injection, XSS hoặc lỗi xác thựcTuy nhiên, trong nhiều năm qua, có một kỹ thuật khá âm thầm mà vẫn chưa được phát hiện trong nhiều cuộc kiểm toán: làm ô nhiễm hoặc làm sai lệch tham số HTTP, được gọi là Lỗi ô nhiễm tham số HTTP (HPP) o Sự nhiễm bẩn tham số HTTP.
Loại lỗ hổng này khai thác cách thức quản lý của các công nghệ và khung máy chủ khác nhau. các tham số trùng lặp trong cùng một yêu cầu HTTPNếu ứng dụng không được chuẩn bị sẵn sàng, kẻ tấn công có thể thay đổi logic nội bộ, vượt qua các bước xác thực, đánh lừa tường lửa ứng dụng web (WAF) và thậm chí chiếm quyền kiểm soát các chức năng quan trọng như xác thực hoặc quản lý quyền.
Khái niệm về tham số HTTP và thứ tự ưu tiên
Trên hầu hết các trang web hiện đại, người dùng gửi dữ liệu thông qua... Các tham số HTTP trong URL hoặc trong phần thân yêu cầu.Các tham số này cho phép trình duyệt truyền thông tin đến ứng dụng: tìm kiếm, dữ liệu biểu mẫu, lựa chọn khảo sát, bình luận, thông tin đăng nhập, v.v.
Trong một yêu cầu GET thông thường, dữ liệu đó được truyền đi trong... Chuỗi truy vấn (mọi thứ xuất hiện sau dấu ? trong URL)Các cặp khóa/giá trị được phân tách bằng ký hiệu dấu và (&). Trong yêu cầu POST, chúng có thể nằm trong phần thân yêu cầu, nhưng logic ứng dụng trên máy chủ thường xử lý chúng rất giống nhau: các khóa có một hoặc nhiều giá trị liên kết.
Nhiều ngôn ngữ lập trình và framework cung cấp các phương pháp để thu được cả hai điều đó. một giá trị duy nhất của tham số Ví dụ như danh sách đầy đủ các giá trị nếu tham số đó xuất hiện nhiều lần. Điều này thường xảy ra, chẳng hạn như với... hộp kiểm cho phép chọn nhiều mục, trong đó cùng một tên tham số xuất hiện nhiều lần.
Vấn đề phát sinh khi nhà phát triển cho rằng: Mỗi tham số chỉ có một giá trị duy nhất. và sử dụng các hàm trả về một giá trị duy nhất, trong khi trình duyệt (hoặc kẻ tấn công) gửi nhiều giá trị có cùng tên. Tại thời điểm này, một khái niệm quan trọng xuất hiện: thứ tự ưu tiên của các giá trị.
Tùy thuộc vào ngôn ngữ lập trình, framework và máy chủ web, việc xuất hiện nhiều lần cùng một tham số có thể dẫn đến nhiều hành vi khác nhau: ví dụ như... giá trị đầu tiên nhận đượcrằng anh ấy lấy giá trị cuối cùng hoặc được tạo ra sự kết hợp của tất cả (ví dụ, được nối với nhau bằng dấu phẩy)Không có một tiêu chuẩn chung nào, do đó mỗi bộ công nghệ có thể hoạt động khác nhau, điều này mở ra nguy cơ dẫn đến những tình huống rất nguy hiểm.
Việc một hàm chỉ trả về một giá trị không phải là một lỗ hổng bảo mật, nhưng khi có nhiều giá trị trả về một giá trị khác thì vấn đề nằm ở chỗ... Các tham số trùng lặp và nhà phát triển không hề hay biết. Tùy thuộc vào cách thức hoạt động của thứ tự ưu tiên đó, ứng dụng có thể nhận được một giá trị không mong muốn. Hành vi bất thường này chính là điều mà các kỹ thuật khai thác. Ô nhiễm tham số HTTP.
Lỗi HTTP Parameter Pollution (HPP) là gì?
Tấn công làm ô nhiễm tham số HTTP là một kỹ thuật bao gồm: chèn thêm các tham số hoặc dấu phân cách chuỗi truy vấn (được mã hóa) bên trong các tham số hiện có khác. Khi tham số được chèn đó được giải mã và sử dụng lại để tạo URL mới hoặc để xây dựng yêu cầu khác, ứng dụng sẽ... Cuối cùng, nó tích hợp thêm các tham số mà nhà phát triển không lường trước được..
Nói cách khác, HPP khai thác cách thức mà ứng dụng hoạt động. Nó tái tạo URL, xử lý biểu mẫu và xử lý các tham số lặp lại.Nếu dữ liệu đầu vào không được xác thực đúng cách, kẻ tấn công có thể buộc ứng dụng diễn giải các giá trị khác với giá trị mong đợi hoặc thêm các tham số bổ sung vào các liên kết, biểu mẫu và chuyển hướng.
Các kỹ thuật HPP đã được giới thiệu rộng rãi bởi Stefano Di Paola và Luca Carettoni tại hội nghị OWASP AppSec 2009. Kể từ đó, chúng đã được ghi chép lại. nhiều kịch bản tấn côngNhưng ngay cả ngày nay, chúng vẫn không được biết đến rộng rãi như các lỗ hổng bảo mật khác, cũng như không được tất cả các công cụ tự động phát hiện và khắc phục hoàn toàn.
Tác động của cuộc tấn công HTTP Parameter Pollution phụ thuộc phần lớn vào... logic cụ thể của ứng dụngcủa khung phần mềm và máy chủ web. Trong một số trường hợp, hậu quả là nhỏ (lỗi hiển thị, lỗi in nhãn, v.v.), nhưng trong những trường hợp khác, nó có thể gây ra hậu quả nghiêm trọng. vượt qua xác thực, thay đổi quyền hạn hoặc thao túng các hoạt động quan trọng..
Để lỗ hổng HPP thực sự có thể bị khai thác, cơ chế đọc tham số của máy chủ hoặc khung phần mềm phải... Trả về một giá trị khác với giá trị mong đợi. Khi gặp phải các tham số trùng lặp, kẻ tấn công có thể thao túng thứ tự ưu tiên đó để điều khiển luồng ứng dụng theo hướng có lợi cho mình.
Cách máy chủ xử lý các tham số trùng lặp
Yếu tố kỹ thuật then chốt giúp cho công nghệ HPP trở nên khả thi nằm ở sự khác biệt về hành vi của các thành phần khác nhau. máy chủ web và ngôn ngữ lập trình phía máy chủ Khi xử lý các tham số lặp lại. Không phải ai cũng làm giống nhau, và chính sự đa dạng đó cho phép kẻ tấn công tìm ra các lỗ hổng.
Trong một số môi trường, nếu chúng ta gửi URL thuộc loại biến1=val1&biến1=val2Máy chủ sẽ chỉ lưu giữ giá trị đầu tiên (val1). Trong những trường hợp khác, nó sẽ mất giá trị cuối cùng đã nhận được (val2). Và trong một số trường hợp, như xảy ra với một số cấu hình của IISHai giá trị đó là nối chuỗi nội bộ thành một danh sáchVí dụ, các ký tự được phân tách bằng dấu phẩy, và ứng dụng sẽ phải diễn giải điều này.
Một ví dụ thường được nhắc đến là: Apache Theo mặc định, nó thường giữ lại giá trị đầu tiên của tham số và loại bỏ các giá trị tiếp theo, trong khi các công nghệ khác tạo ra một tham số mới. Danh sách CSV (Giá trị được phân tách bằng dấu phẩy) với tất cả các giá trị của tham số bị ô nhiễm đó. Nếu ứng dụng phụ trợ chỉ được điều chỉnh cho một trong những trường hợp đó, các tình huống không kiểm soát được có thể gây ra những ảnh hưởng không mong muốn.
Việc xử lý các tham số trùng lặp này không chỉ ảnh hưởng đến logic mà người dùng nhìn thấy, mà còn ảnh hưởng đến... các biện pháp kiểm soát an ninh nội bộ, trình xác thực đầu vào, quy trình xác thực và ủy quyềnCùng một tham số có thể được kiểm tra tại một điểm trong ứng dụng với một giá trị, và được sử dụng tại một điểm khác với một giá trị khác, tất cả đều nằm trong cùng một yêu cầu.
Hơn nữa, các nhà máy thủy điện có thể được sử dụng để tận dụng những lợi thế của... sự biến đổi tính cách bên trong Việc này do chính máy chủ thực hiện. Ví dụ, đã có tài liệu ghi lại cách một số máy chủ thay đổi một số ký tự cụ thể (chẳng hạn như ký tự "]" được thay thế bằng "_") trong quá trình xử lý, điều này có thể được sử dụng để né tránh các quy tắc lọc hoặc phần mềm WAF dựa trên biểu thức chính quy.
Hậu quả và các kịch bản khai thác của nhà máy thủy điện
Các kỹ thuật làm ô nhiễm tham số HTTP cho phép tạo ra một loạt các tình huống rủi ro khá rộng, cả ở phía máy chủ và phía máy khách. Mức độ nghiêm trọng của chúng phụ thuộc vào... chức năng của tham số bị ảnh hưởng và điểm trong luồng ứng dụng trong đó nó bị thay đổi.
Một trong những hậu quả đáng chú ý nhất được quan sát thấy ở các ứng dụng dễ bị tổn thương là: ghi đè các tham số được bảo vệKẻ tấn công có thể thêm nhiều hơn một giá trị cho một tham số quan trọng và buộc ứng dụng sử dụng chính xác giá trị độc hại đó nhờ vào cách thức hoạt động của thứ tự ưu tiên trong môi trường cụ thể đó.
Ngoài ra, HPP cũng thường cho phép sửa đổi hành vi dự kiến của ứng dụngVí dụ, bằng cách thay đổi bộ lọc trong các công cụ tìm kiếm nội bộ, thay đổi mã định danh tài nguyên, thao túng các hoạt động bỏ phiếu hoặc thay đổi các tham số kiểm soát logic nghiệp vụ (chẳng hạn như cờ quản trị, chế độ gỡ lỗi hoặc trạng thái giao dịch).
Một hệ quả quan trọng khác là né tránh việc xác thực đầu vàoNếu mã xác thực bảo mật kiểm tra lần xuất hiện đầu tiên của một tham số, nhưng thao tác thực tế được thực hiện với lần xuất hiện sau đó, kẻ tấn công có thể vượt qua các biện pháp kiểm soát bảo mật tưởng chừng như được triển khai tốt. Điều này đã được chứng kiến trong các trường hợp sau: bỏ qua xác thực và kiểm soát truy cập.
Trong các bối cảnh phức tạp hơn, HPP có thể kích hoạt lỗi ứng dụng nội bộ, lộ thông tin nhạy cảm, truy cập vào các biến nằm ngoài phạm vi dự định. và thậm chí cả việc sử dụng các tham số được ghép nối với nhau, khi được lắp ráp lại sẽ tạo thành các gói dữ liệu mà WAF không phát hiện được khi phân tích từng tham số riêng lẻ.
Về mặt tác động, các cuộc tấn công đã được ghi nhận từ cả hai phía. phía máy chủ (bỏ qua WAF, thay đổi cách viết lại URL, buộc phải sử dụng các tuyến đường nội bộ khác nhau) kể từ phía khách hàng (Chèn các tham số vào liên kết và biểu mẫu để lừa đảo nạn nhân thông qua các URL được chỉnh sửa đặc biệt).
Ví dụ điển hình về HPP trong ứng dụng bỏ phiếu.
Để hiểu rõ hơn cách thức hoạt động của cuộc tấn công HTTP Parameter Pollution, ví dụ sau đây sẽ minh họa điều này: Ứng dụng web bỏ phiếu được viết bằng JSPNơi người dùng được phép bỏ phiếu cho ứng cử viên yêu thích của họ trong các cuộc bầu cử khác nhau.
Ứng dụng nhận được thông tin thông qua một tham số có tên là mã bầu cử Mã định danh của cuộc bầu cử hiện tại. Với giá trị này, máy chủ sẽ tạo một trang liệt kê các ứng cử viên hiện có, mỗi ứng cử viên đều có một liên kết để bỏ phiếu. Phương thức Yêu cầu.getParameter("pair") Trong JSP, khi có nhiều giá trị cho cùng một tham số, nó luôn trả về giá trị duy nhất. giá trị đầu tiên.
Hãy tưởng tượng một URL như thế này: http://servidor/eleccion.jsp?eleccion_id=4568Trang kết quả sẽ hiển thị một liên kết để bình chọn cho từng ứng cử viên, ví dụ:
Liên kết 1Tôi bỏ phiếu cho ông White.
Liên kết 2Tôi bỏ phiếu cho bà Green.
Giả sử một người dùng xấu, người ủng hộ một ứng cử viên cụ thể, nhận ra rằng ứng dụng không... Xác thực thành công tham số choice_idLợi dụng lỗ hổng HPP, nó quyết định chèn tham số. c Trong phạm vi choice_id đó, mã hóa các dấu phân cách của chuỗi truy vấn.
URL mà nó tạo ra có thể có dạng như sau: http://servidor/eleccion.jsp?eleccion_id=4568%26candidato%3DgreenLưu ý rằng kẻ tấn công đã mã hóa ký hiệu & thành %26 và dấu = thành %3D, do đó, sau khi giải mã, chúng trở thành một tham số ứng cử viên mới được nhúng trong giá trị election_id.
Khi nạn nhân nhấp vào URL bị thao túng đó, họ dường như truy cập vào cuộc bầu cử chính xác. Tuy nhiên, vì ứng dụng sử dụng giá trị election_id để tạo các liên kết bỏ phiếu, việc giải mã giá trị được chèn vào... Kết quả là chuỗi truy vấn bao gồm thêm một ứng viên..
Kết quả là các liên kết được tạo nội bộ sẽ có dạng như sau:
Liên kết 1Tôi bỏ phiếu cho ông White.
Liên kết 2Tôi bỏ phiếu cho bà Green.
Không quan trọng nạn nhân nhấp vào liên kết nào trong hai liên kết đó: kịch bản Tệp voting.jsp luôn nhận hai tham số candidate.Trong đó giá trị đầu tiên có màu xanh lá cây. Vì nhà phát triển sử dụng chức năng Java tiêu chuẩn để lấy một giá trị duy nhất, họ chỉ nhận được giá trị đầu tiên của tham số ứng cử viên và loại bỏ giá trị thứ hai, vốn sẽ thể hiện phiếu bầu thực tế của người dùng.
Nhờ hành vi này, lỗ hổng HPP cho phép kẻ tấn công buộc tất cả phiếu bầu được bỏ trên trang đó phải được chuyển cho ứng cử viên của họ.bất kể lựa chọn của nạn nhân trong giao diện. Đây là một ví dụ rất rõ ràng về việc quản lý tham số tưởng chừng "đơn giản" lại có thể tác động trực tiếp đến... tính toàn vẹn dữ liệu và logic nghiệp vụ.
Vượt qua xác thực: Vụ việc của Blogger
Một trong những ví dụ khét tiếng nhất về việc khai thác lỗ hổng HTTP Parameter Pollution xảy ra trong hệ thống blog của BloggerLỗ hổng trong việc xử lý tham số đã cho phép kẻ tấn công truy cập vào... Trở thành quản trị viên của các blog khácđơn giản bằng cách thao tác các tham số của yêu cầu POST.
Yêu cầu gây ra vấn đề có dạng như sau (đã đơn giản hóa cú pháp):
POST /add-authors.do HTTP/1.1
security_token=Attackertoken&blogID=kẻ tấn côngblogidvalue&blogID=victimblogidvalue&authorsList=Attackermail%40gmail.com&ok=Invite
Vấn đề nằm ở chỗ... cơ chế xác thực và xác minh bảo mật Tôi vừa mới xem tham số đầu tiên blogID Thông báo đó đến trong yêu cầu, xác minh rằng người dùng có quyền truy cập vào blog đó. Tuy nhiên, thao tác thực tế mà tác giả khách mời thêm vào được thực hiện bằng cách sử dụng... lần xuất hiện thứ hai của blogIDĐiều này trùng khớp với blog của nạn nhân.
Do mâu thuẫn nội tại này, cách máy chủ xử lý vấn đề đã dẫn đến những thay đổi. tham số trùng lặpKẻ tấn công đã vượt qua được các bước kiểm tra bảo mật trên blog của chính mình nhưng lại thực hiện được hành động trên blog khác. Kết quả là... bỏ qua xác thực hoàn toàn Chỉ với một yêu cầu được xây dựng tốt.
Trường hợp này chứng minh rất rõ ràng rằng HPP không chỉ là một "sự tò mò về mặt kỹ thuật", mà là một kỹ thuật có tầm ảnh hưởng. tác động thực tế đến hệ thống của các nhà cung cấp lớnHơn nữa, nó nhấn mạnh tầm quan trọng của việc kiểm tra an ninh và thực hiện các thao tác sử dụng chính xác cùng một giá trị tham số, mà không phụ thuộc vào thứ tự ưu tiên không được kiểm soát.
HPP và Tường lửa ứng dụng web (WAF)
Nhiều tổ chức dựa vào WAF như một lớp bảo vệ bổ sung cho các ứng dụng web của họ khỏi các cuộc tấn công đã biết. Các tường lửa này thường dựa trên... các quy tắc và chữ ký (biểu thức chính quy) Những quy tắc này được áp dụng cho các tham số, tiêu đề và thậm chí cả phần thân của các yêu cầu HTTP.
Vấn đề là, khi có các tham số trùng lặp, kẻ tấn công có thể Phân mảnh một đoạn mã độc hại thành nhiều giá trị khác nhau của cùng một tham số.Mặc dù WAF phân tích từng tham số riêng lẻ, nhưng vẫn có khả năng không có giá trị nào trong số các giá trị được phân lập khớp với chữ ký tấn công, do đó yêu cầu vượt qua các bộ lọc mà không bị chặn.
Khi yêu cầu đó đến được máy chủ web, công cụ ứng dụng hoặc chính máy chủ đó, thì đó sẽ là câu trả lời. tập hợp lại các giá trị theo logic nội tại của nó. (ví dụ, bằng cách nối chúng lại với nhau bằng dấu phẩy hoặc lấy phần tử cuối cùng), dẫn đến một chuỗi mà toàn bộ cấu thành nên cuộc tấn công. Bằng cách này, kỹ thuật làm ô nhiễm tham số tương tự cho phép bỏ qua các tường lửa ứng dụng web (WAF) không được trang bị để phân tích tập hợp các giá trị được nối tiếp nhau..
Ngoài ra, một số WAF không hoạt động như mong muốn. máy chủ proxy ngược Và những hệ thống không có cái nhìn toàn diện về luồng dữ liệu giữa máy khách và máy chủ, mà chỉ hoạt động như các bộ lọc điểm, có thể đặc biệt dễ bị tổn thương trước các lỗ hổng bảo mật HPP này. Những hệ thống dựa trên các công nghệ như... Apache với công cụ chấm điểm tham số và phân tích thống kê. Chúng thường có xu hướng cư xử tốt hơn khi đối mặt với những kỹ thuật này.
Tóm lại, HPP chứng minh rằng ngay cả với WAF được cấu hình đúng cách, Sự an toàn không được đảm bảo. Nếu logic của ứng dụng và máy chủ xử lý sai các tham số trùng lặp, thì biện pháp bảo vệ phải toàn diện và tính đến cách thức xử lý yêu cầu ở mọi cấp độ.
Các trường hợp thực tế, công cụ và mức độ phổ biến của HPP
Nghiên cứu học thuật và công trình của các chuyên gia bảo mật đã chỉ ra rằng việc làm ô nhiễm tham số HTTP không phải là hiếm gặp. Các dự án như... PAPAS (Hệ thống phân tích tham số ô nhiễm)Được thúc đẩy bởi các nhà nghiên cứu như Carmen Torrano, chúng được thiết kế chính xác để Tự động phát hiện các lỗ hổng HPP trong các ứng dụng web quy mô lớn.
Trong các thí nghiệm được tiến hành trên hơn 5000 trang web cực kỳ phổ biến (theo các bảng xếp hạng như Alexa), người ta nhận thấy rằng hầu như 30% số trang web được phân tích Chúng chứa ít nhất một trang dễ bị tấn công HPP. Điều đó có nghĩa là, có thể chèn một tham số được mã hóa vào một tham số hiện có khác và xác minh rằng nó xuất hiện dưới dạng đã giải mã trong một URL hoặc biểu mẫu kết quả nào đó.
Điều đáng chú ý hơn nữa là gần 47% số lỗ hổng được phát hiện (tương đương với khoảng 14% tổng số địa điểm) thực sự có thể khai thácĐiều này cho phép các cuộc tấn công vượt xa những lỗi trình bày đơn giản. Trong số các trang web bị ảnh hưởng có... Những tên tuổi lớn như Microsoft hay Google.Điều này cho thấy rõ ràng ngay cả những gã khổng lồ công nghệ cũng không tránh khỏi những vấn đề này.
Các công cụ như PAPAS Chúng đã giúp phân tích và định lượng vấn đề, nhưng đồng thời cũng làm nổi bật khó khăn của việc... tự động phát hiện HPPNhiều công cụ quét lỗ hổng web truyền thống không xem xét kỹ lưỡng các trường hợp tham số trùng lặp, hoặc chúng tạo ra một lượng lớn kết quả dương tính giả.
Ngoài các giải pháp cụ thể như POTATOES, còn có các tiện ích mở rộng như... HPP Finder dành cho Google ChromeCác công cụ này được thiết kế để phát hiện các vectơ tấn công HPP tiềm ẩn trong URL và biểu mẫu HTML. Mặc dù chúng có thể giúp xác định các điểm đáng ngờ (ví dụ: các biểu mẫu sử dụng lại tham số mà không được xác thực đúng cách), nhưng chúng không phải là giải pháp thay thế hoàn toàn cho việc phòng chống tấn công HPP. Đây không phải là giải pháp hoàn chỉnh cũng không thể thay thế cho việc kiểm tra an ninh chuyên sâu..
Một công cụ khác được sử dụng rộng rãi trong hệ sinh thái kiểm thử bảo mật là SỞ HỮU ZAPbao gồm các phần mở rộng và tập lệnh để kiểm tra các vectơ khác nhau, bao gồm cả những vectơ liên quan đến các tham số trong chuỗi truy vấn. Tuy nhiên, trong trường hợp cụ thể của HPP, vẫn cần phải kết hợp các công cụ tự động với phân tích thủ công và hiểu rõ quy trình ứng dụng.
HPP trong các công cụ tìm kiếm nội bộ và các ví dụ như Apple.com
HPP không chỉ được quan sát thấy trong các hệ thống quản lý blog hoặc bảng điều khiển quản trị, mà chúng còn xuất hiện trong nhiều lĩnh vực khác. những chức năng tưởng chừng vô hại như công cụ tìm kiếm thẻ Trong các diễn đàn và cộng đồng trực tuyến. Một ví dụ nổi bật đã được tìm thấy trong... Diễn đàn của AppleTrong đó, việc quản lý các nhãn và thông số bị ô nhiễm cho thấy những hành vi kỳ lạ.
Trong các diễn đàn này, việc chọn một thẻ trong giao diện sẽ thêm một tham số. thẻ Chuỗi truy vấn trong URL được truyền giá trị của thẻ đã chọn. Ứng dụng phía máy chủ đã truy xuất giá trị này, tìm kiếm các chủ đề có thẻ đó và hiển thị kết quả cho người dùng. Nếu nhiều thẻ được chọn, tất cả chúng sẽ được thêm vào. trong cùng tham số thẻ, được phân tách bằng toán tử cộng (+)Như vậy, hệ thống phụ trợ đã sẵn sàng xử lý danh sách đó.
Khi tham số tags bị lẫn nhiều giá trị trùng lặp, người ta nhận thấy rằng công nghệ phía máy chủ đã tạo ra một lỗi. danh sách phân tách bằng dấu phẩy (CSV) với tất cả các giá trị tham số bị lỗi. Ứng dụng đã có thể xử lý một phần danh sách đó (phát hiện các thẻ khác nhau) nhưng Máy in không in hết tất cả các nhãn một cách chính xác. trong ô văn bản của công cụ tìm kiếm.
Trong bối cảnh cụ thể này, dường như không có lỗi bảo mật nào có thể bị khai thác, nhưng rõ ràng là... Có những tình huống mà các nhà phát triển chưa xem xét đến.Trong những ứng dụng khác, ít vô hại hơn, hành vi tương tự có thể dẫn đến: Sự khác biệt giữa những gì được xác thực, những gì được sử dụng và những gì được hiển thị cho người dùng., với những hậu quả nghiêm trọng hơn.
Việc phân tích các công nghệ nền tảng trong các diễn đàn như của Apple (ví dụ, Apache với J2EE ở phần máy chủ.(Điều này cho thấy nhiều hệ thống hiện đại hoạt động tương tự như các máy chủ như IIS hoặc các hệ thống kết hợp như Apache với Python khi xử lý các tham số bị nhiễu, tạo ra các danh sách được phân tách bằng dấu phẩy và ủy thác việc xử lý cuối cùng các giá trị đó cho logic ứng dụng.)
Những ví dụ này đóng vai trò như một lời nhắc nhở rằng Việc nó "có vẻ hoạt động" trong điều kiện bình thường là chưa đủ.Bạn cần phải kiểm tra một cách có hệ thống xem ứng dụng phản ứng như thế nào khi nhận được các tham số trùng lặp, các giá trị được mã hóa kỳ lạ, các tổ hợp bất thường, v.v., bởi vì đó là nơi mà HPP tìm thấy thế mạnh của mình.
Phát hiện và giảm thiểu tình trạng ô nhiễm tham số HTTP
Việc phát hiện và giảm thiểu HPP đòi hỏi một phương pháp kết hợp, bao gồm nhiều yếu tố. Thực hành phát triển an toàn tốt, cấu hình máy chủ phù hợp và sử dụng các công cụ chuyên dụng.Chỉ dựa vào WAF để giải quyết mọi vấn đề là không đủ, bởi vì như chúng ta đã thấy, nhiều khi chính lớp này lại dễ bị đánh lừa.
Từ góc độ phát triển phần mềm, điều cần thiết là các lập trình viên phải Hãy lưu ý rằng một tham số có thể có nhiều giá trị. Và họ phải quyết định rõ ràng cách xử lý trường hợp đó. Họ không nên dựa vào các hành vi mặc định của ngôn ngữ hoặc khung phần mềm mà không hiểu thấu đáo cách thức hoạt động của thứ tự ưu tiên giá trị.
Ngoài ra, cần lưu ý rằng, tại những thời điểm quan trọng như... xác thực, ủy quyền, các thao tác nhạy cảm hoặc thay đổi trạng thái quan trọngHệ thống kiểm tra nghiêm ngặt đảm bảo rằng các tham số chỉ được xuất hiện một lần, từ chối các yêu cầu có tham số trùng lặp hoặc ít nhất là ghi lại chúng để phân tích.
Về cơ sở hạ tầng, nên xem xét lại… Cấu hình máy chủ web và khung phần mềm Để hiểu chính xác điều gì xảy ra khi nhận được một tham số lặp lại: liệu tham số đầu tiên, tham số cuối cùng, hay tất cả các tham số được nối lại với nhau sẽ được giữ lại. Từ đó, logic ứng dụng có thể được điều chỉnh để tránh sự khác biệt giữa việc xác thực và việc sử dụng giá trị thực tế.
Về mặt công cụ, ngoài các phần mềm quét lỗ hổng bảo mật thông thường, việc kết hợp các giải pháp chuyên biệt như... cũng rất hữu ích. PAPAS hoặc loại phần mở rộng Công cụ tìm kiếm HPP trong quy trình kiểm thử. Nếu sử dụng OWASP ZAP hoặc các công cụ kiểm thử xâm nhập khác, việc thiết kế các kịch bản cụ thể để tạo ra chúng là điều đáng làm. các yêu cầu với các tham số và giá trị trùng lặp được mã hóa theo những cách khác nhau để quan sát phản ứng của ứng dụng.
Cuối cùng, điều quan trọng là phải thừa nhận rằng HPP là một vấn đề. Phổ biến hơn nhiều so với suy nghĩ thông thường.Điều này đặc biệt đúng đối với các ứng dụng lớn đã trải qua nhiều năm phát triển. Kết hợp đào tạo, xem xét mã nguồn, kiểm thử tự động và kiểm thử thủ công được thiết kế tốt là cách tốt nhất để kiểm soát các lỗi này.
Việc làm ô nhiễm tham số HTTP đã xứng đáng có một vị trí trong số các kỹ thuật tấn công web mà bất kỳ nhóm phát triển và bảo mật nào cũng nên lưu tâm: Nó hoạt động kín đáo, khó phát hiện chỉ bằng một cái nhìn thoáng qua vào nhật ký hệ thống, và có thể gây ra những hậu quả rất nghiêm trọng. Nếu nó ảnh hưởng đến các tham số quan trọng của logic nghiệp vụ hoặc các biện pháp kiểm soát bảo mật. Hiểu cách xử lý các tham số trùng lặp trong hệ thống của bạn và chủ động kiểm tra các trường hợp này là một trong những nhiệm vụ thoạt nhìn có vẻ hơi tẻ nhạt, nhưng nó tạo nên sự khác biệt giữa một ứng dụng chỉ đơn thuần hoạt động và một ứng dụng thực sự mạnh mẽ chống lại các cuộc tấn công nâng cao.
Người viết đam mê về thế giới byte và công nghệ nói chung. Tôi thích chia sẻ kiến thức của mình thông qua viết lách và đó là những gì tôi sẽ làm trong blog này, cho bạn thấy tất cả những điều thú vị nhất về tiện ích, phần mềm, phần cứng, xu hướng công nghệ, v.v. Mục tiêu của tôi là giúp bạn điều hướng thế giới kỹ thuật số một cách đơn giản và thú vị.

