PHP Crlf là gì?
Tôi gặp sự cố khi đọc văn bản từ cơ sở dữ liệu mysql để tạo tập lệnh trình bao. Nhưng tập lệnh xuất hiện với ngắt dòng ở định dạng khác và không thể thực thi đúng cách. Vì vậy, tôi sử dụng tập lệnh của bạn để chuyển đổi văn bản từ cơ sở dữ liệu. VÀ NÓ HOẠT ĐỘNG TỐT. Cảm ơn rất nhiều Show
CRLF injection là một lỗ hổng cho phép tin tặc độc hại chèn các ký tự xuống dòng (CR) và linefeed (LF) để thay đổi cách thức hoạt động của ứng dụng web hoặc gây nhầm lẫn cho quản trị viên của ứng dụng đó. Có hai cách sử dụng độc hại chính để tiêm CRLF. ngộ độc nhật ký (còn được gọi là chèn nhật ký, tách nhật ký hoặc giả mạo nhật ký) và phân tách phản hồi HTTP Những kẻ tấn công có thể sử dụng các lần tiêm CRLF để chuyển sang các loại lỗ hổng khác, chủ yếu là cross-site scripting (XSS). Tiêm CRLF cũng có thể được sử dụng trong các ứng dụng web để tác động đến hành vi của email – điều này được gọi là tiêm email (chèn tiêu đề email) Mức độ nghiêm trọng. CRLF là gì?CR và LF là các ký tự đặc biệt của bảng ASCII (13 và 10). Chúng cũng thường được gọi là \r\n sau mã thoát của hai ký tự này (\r = CR, \n = LF) CR và LF được sử dụng (cùng nhau hoặc riêng biệt) để biểu thị kết thúc một dòng (EoL) trong các hệ điều hành và giao thức Internet, bao gồm HTTP. Windows sử dụng kết hợp CRLF, các hệ điều hành như Linux/UNIX và macOS hiện tại chỉ sử dụng LF cho mục đích này và Mac OS cũ chỉ sử dụng CR ngộ độc log là gì?Trong một cuộc tấn công đầu độc nhật ký dựa trên tiêm CRLF, một tin tặc độc hại sẽ tiêm các ký tự CRLF vào tệp nhật ký máy chủ web để gây nhầm lẫn cho cả hệ thống phân tích nhật ký tự động và quản trị viên hệ thống đang duyệt nhật ký theo cách thủ công Định dạng nhật ký máy chủ webNhiều máy chủ web, chẳng hạn như Apache, sử dụng Định dạng nhật ký chung NCSA (CLF). Định dạng của các mục Định dạng nhật ký chung luôn giống nhau
Ví dụ
Đây là cách bạn sẽ đọc mục này
Một định dạng tiêu chuẩn khác là Định dạng nhật ký kết hợp, tương tự nhưng có thêm một số trường Ví dụ về ngộ độc nhật kýHãy tưởng tượng rằng khách hàng có thể đưa các ký tự CR và LF vào các yêu cầu được gửi tới www. thí dụ. máy chủ web com và nó sẽ gửi yêu cầu sau
Yêu cầu chứa một mục nhập nhật ký giả mạo, vì vậy khi nó được ghi lại, tệp nhật ký sẽ bao gồm một dòng bổ sung ________số 8_______Các ký tự được gạch chân đại diện cho nội dung đã được đưa vào bằng cách tiêm CRLF ( 5 là các ký tự CRLF được mã hóa)Các công cụ giám sát và quản trị viên phân tích nhật ký này sẽ bị nhầm lẫn bởi mục nhập lạ này – có vẻ như một người dùng quản trị viên được xác thực đã yêu cầu quản trị viên. tài nguyên php một thời gian trong quá khứ xa xôi. Sự nhầm lẫn này có thể cho phép kẻ tấn công đánh lạc hướng quản trị viên và trì hoãn việc phân tích nhật ký với hy vọng thoát khỏi các hành động nguy hiểm khác sẽ xuất hiện trong các mục nhật ký sau này Phân tách phản hồi HTTP là gì?Trong một cuộc tấn công phân tách phản hồi HTTP, kẻ tấn công đưa các chuỗi CRLF vào một phản hồi HTTP để sửa đổi cách trình duyệt diễn giải các tiêu đề HTTP và nội dung yêu cầu. Tiêm CRLF có thể được sử dụng để thêm nội dung độc hại vào phần thân yêu cầu hoặc để thêm các tiêu đề HTTP bổ sung Cách giao thức HTTP sử dụng các ký tự CRLFGiao thức HTTP sử dụng chuỗi ký tự CRLF theo hai cách
Tương ứng, có hai cách để kẻ tấn công sửa đổi lưu lượng HTTP
Lưu ý rằng những kẻ tấn công cũng có thể đưa các tiêu đề đặc biệt vào proxy độc hại hoặc bộ đệm web, cho phép chúng cung cấp nội dung độc hại cho nhiều người dùng Ví dụ về phân tách phản hồi HTTP với XSSTrong ví dụ sau, kẻ tấn công sử dụng phân tách phản hồi HTTP và chèn tiêu đề HTTP để gửi yêu cầu HTTP bổ sung thêm tiêu đề cho phản hồi HTTP, kết thúc sớm tiêu đề và đưa ra lỗ hổng tập lệnh chéo trang được phản ánh Kẻ tấn công gửi tải trọng sau trong email lừa đảo khuyến khích người dùng nhấp vào liên kết hoặc nút
Tải trọng sử dụng nội xạ CRLF để phân tách phản hồi HTTP như sau
Hậu quả tiềm ẩn của một cuộc tấn công tiêm CRLFTác động của việc tiêm CRLF dường như bị hạn chế, nhưng chúng được đề cập trong danh sách 10 ứng dụng web hàng đầu năm 2021 của OWASP trong A03. 2021-Phần tiêm. Những kẻ tấn công có thể sử dụng kỹ thuật này để leo thang thành các cuộc tấn công độc hại nguy hiểm hơn như kịch bản chéo trang, chiếm quyền điều khiển trang, xóa giao diện người dùng chéo, v.v. Các lỗ hổng phân tách phản hồi HTTP cho phép kẻ tấn công sửa đổi các tiêu đề HTTP và bỏ qua các cơ chế bảo mật cụ thể, chẳng hạn như bộ lọc XSS, cờ bảo mật cookie và các hạn chế của chính sách cùng nguồn gốc (SOP). Điều này mở ra cách thực hiện một số loại tấn công trung gian (MITM) và khai thác các lỗ hổng giả mạo yêu cầu chéo trang (CSRF), do đó, có thể dẫn đến tiết lộ thông tin nhạy cảm hoặc hơn thế nữa Làm cách nào để phát hiện lỗ hổng tiêm CRLF?Cách tốt nhất để phát hiện các lỗ hổng CRLF injection phụ thuộc vào việc chúng đã biết hay chưa biết
Làm cách nào để ngăn chặn các lỗ hổng chèn CRLF trong các ứng dụng web?Nhiều khung công tác web hiện nay ngăn phản hồi HTTP phân tách thông qua tiêm CRLF bằng cách không cho phép các chuỗi CRLF được đưa vào tiêu đề HTTP. Nếu khung của bạn không tự động thực hiện xác thực đầu vào như vậy, bạn có thể sử dụng một trong các phương pháp sau
Lưu ý rằng bạn không thể ngăn chặn việc đầu độc nhật ký thông qua tiêm CRLF ở cấp ứng dụng đơn giản vì máy chủ web có trách nhiệm ghi nhật ký các yêu cầu ở định dạng an toàn. Tương tự, các công cụ phân tích nhật ký nên phân tích các tệp nhật ký, bao gồm cả những tệp được tạo bởi máy chủ web, theo cách an toàn không cho phép tấn công đầu độc nhật ký hoặc giả mạo nhật ký thành công Làm cách nào để giảm thiểu các cuộc tấn công tiêm CRLF?Vì bản thân việc tiêm CRLF không nguy hiểm nhưng có thể mở đường cho các cuộc tấn công khác, bạn nên tập trung chủ yếu vào việc giảm thiểu các cuộc tấn công tiếp theo như vậy, chẳng hạn như tấn công tập lệnh chéo trang và đầu độc bộ đệm web Để giảm thiểu tạm thời, bạn có thể dựa vào các quy tắc WAF (tường lửa ứng dụng web). Với các quy tắc như vậy, người dùng sẽ không thể cung cấp đầu vào độc hại cho ứng dụng web của bạn, vì vậy sẽ không có mã độc hại nào thực thi trong trình duyệt của họ. Tuy nhiên, vì tường lửa ứng dụng web không hiểu ngữ cảnh của ứng dụng của bạn, những kẻ tấn công có thể phá vỡ các quy tắc này và không bao giờ được coi là giải pháp lâu dài Các câu hỏi thường gặpThuốc tiêm CRLF là gì?CRLF injection là một lỗ hổng cho phép tin tặc độc hại chèn các ký tự xuống dòng (CR) và linefeed (LF) để thay đổi cách thức hoạt động của ứng dụng web hoặc gây nhầm lẫn cho quản trị viên của ứng dụng đó. Tiêm CRLF cũng có thể được sử dụng trong các ứng dụng web để tác động đến hành vi của email – đây được gọi là tiêm email hoặc tiêm tiêu đề email
Tìm hiểu về tiêm tiêu đề email Tiêm CRLF nguy hiểm như thế nào?Tiêm CRLF được kẻ tấn công sử dụng để đầu độc nhật ký và phân tách phản hồi HTTP. Những kẻ tấn công cũng có thể sử dụng các lần tiêm CRLF để chuyển sang các loại lỗ hổng khác, chủ yếu là cross-site scripting (XSS)
Tìm hiểu thêm về cross-site scripting và hậu quả của nó Làm thế nào để tránh tiêm CRLF?Nhiều khung công tác web ngăn phản hồi HTTP phân tách thông qua tiêm CRLF bằng cách không cho phép các chuỗi CRLF được đưa vào tiêu đề HTTP. Nếu khung của bạn không tự động thực hiện xác thực đầu vào như vậy, bạn có thể sử dụng các nguyên tắc mã hóa an toàn chung. lọc đầu vào và thoát đầu ra |