xml là xương sống của ứng dụng hướng dịch vụ (SOA) và nó sẽ là một phần hữu ích trong tương lai sắp tới. Vì xml dễ dàng, linh hoạt, nó có thể dễ dàng bị tấn công và những kẻ tấn công có thể sử dụng nó cho mục đích riêng của họ. Như vậy một số các cuộc tấn công là tấn công phân tích cú pháp cưỡng chế, tấn công thực thể bên ngoài xml (XEE), tấn công xml dos (xdos), bom xml.
bất kỳ ai có thể kể chi tiết về các cuộc tấn công này.
cách người ta có thể mô phỏng các cuộc tấn công này thực tế trong một hệ thống đơn lẻ?lỗ hổng xml
Trả lời
Trước tiên, chúng ta cần phân biệt hiệu ứng tấn công từ tính năng được khai thác.
tính năng đặc biệt của XML có thể được khai thác là
- thực thể XML
- mở rộng độc quyền của phân tích cú pháp và validator
- Cyclic/recursive tài liệu tham khảo
- từ xa truy cập
Tác dụng có thể là
- DOS
- Thông tin tiết lộ
Tôi không nghĩ rằng có nét percise của một "quả bom", nhưng nó đề cập đến một cuộc tấn công đó là đặc biệt "nhỏ gọn" và đó "nở". Một "cuộc tấn công phân tích cú pháp cưỡng chế" khai thác bản chất của mô hình XML để áp đảo trình phân tích cú pháp.
Ví dụ bên dưới được lấy từ XML Denial of Service Attacks and Defenses. Ngoài ra, nếu bạn hiểu tiếng Pháp, hãy đọc tạp chí xuất sắc "La security des web services".
Ví dụ 1
Một quả bom sử dụng các đối tượng mà kết quả trong một hệ điều hành DOS vì nó làm cạn kiệt bộ nhớ
<?xml version="1.0"?>
<!DOCTYPE kaboom [
<!ENTITY a "aaaaaaaaaaaaaaaaaa...">
]>
<kaboom>&a;&a;&a;&a;&a;&a;&a;&a;&a;...</kaboom>
Nếu bạn có 50'000 "aaaa ... aaa" và 50'0000 &a:&a;...&a;
, tải trọng của 200KB mở rộng đến hơn 2GB bộ nhớ trong
Ví dụ 2
Một thực thể có thể được sử dụng để truy cập một tệp khác một cách trái phép. Điều này dẫn đến việc tiết lộ thông tin.
<?xml version="1.0"?>
<!DOCTYPE letter [
<!ENTITY file SYSTEM "/sensitive.txt" >
]>
<tag> &file; </tag>
Ví dụ 3
Sử dụng khả năng của phân tích cú pháp nhất định để truy cập tài nguyên từ xa (xem http://www.ibm.com/developerworks/xml/library/x-tipgentity.html), bây giờ đi tìm những gì sẽ xảy ra nếu các tập tin bigfile.xml
là 2GB. Điều này có thể dẫn đến một hệ điều hành DOS.
<?xml version="1.0"?>
<!DOCTYPE letter [
<!ENTITY file SYSTEM "http://www.mysite.com/bigfile.xml" >
]>
<tag> &file; </tag>
Ví dụ 4
đệ quy này sẽ dẫn đến xả bộ nhớ và có thể là một hệ điều hành DOS.
<!ENTITY companyname "Contoso Inc.">
<!ENTITY divisionname "&companyname; Web Products Division">
Nếu đây là bài vở ở trường, sau đó bạn cũng nên suy nghĩ về cách bạn có thể bảo vệ mình khỏi bị tấn công như vậy.
Có lẽ tôi đang bị nguyền rủa ở đây, nhưng ai đó có thể giải thích sự đệ quy trong Ví dụ 4? Theo như tôi có thể nói, '& companyname;' sẽ mở rộng thành "Contoso Inc." và '& divisionname;' sẽ mở rộng thành "Contoso Inc. Web Products Division". Tôi không thấy một trong hai điều này có thể gây ra vấn đề gì. –
@squeamishossifrage Nếu bạn đi đến liên kết mà các ví dụ được lấy từ bạn sẽ nhận được một lời giải thích rõ ràng hơn nhiều. Ví dụ được đưa ra ở đây để đệ quy không phải là một ví dụ đệ quy trong bài viết, chỉ là một ví dụ làm tổ đơn giản. Ngoài ra, cuộc tấn công đệ quy sẽ chỉ hoạt động nếu trình phân tích cú pháp của bạn cho phép XML không hợp lệ như được mô tả trong bài viết. – JimmyJames
- 1. Tìm lỗ hổng trong phần mềm
- 2. Lỗ hổng jsonp xss rõ ràng
- 3. Ví dụ về lỗ hổng UDP NAT
- 4. cách tìm "lỗ hổng" trong cột auto_increment?
- 5. Kiểm tra lỗ hổng byte rỗng
- 6. cách khai thác lỗ hổng của php?
- 7. Đếm số "lỗ hổng" trong bitmap
- 8. Hiểu rõ về lỗ hổng Wordpress
- 9. PHP "Remember Me" lỗ hổng bảo mật?
- 10. Lỗ hổng Java phổ biến là gì?
- 11. Windows Mạo danh: Một lỗ hổng trong thuốc mỡ
- 12. Các lỗ hổng xác thực biểu mẫu ASP.NET
- 13. snprintf Format Chuỗi lỗ hổng bảo mật vấn đề
- 14. lỗ hổng bảo mật - báo cáo veracode - crlf injection
- 15. Lỗ hổng MVVM sử dụng kịch bản Chi tiết chính
- 16. Lỗ hổng bảng băm (ghi đè thuộc tính)?
- 17. Xuân quản lý xác thực lỗ hổng bảo mật
- 18. Làm thế nào để đối phó với một lỗ hổng trong System.Data.DataTableExtensions.CopyToDataTable()
- 19. Lỗ hổng trong bộ nhớ đệm của khóa bị xáo trộn? Cấp phép Android
- 20. Làm cách nào để kiểm tra lỗ hổng SSL trên máy chủ web của tôi?
- 21. các lỗ hổng trong việc sử dụng trực tiếp GET và POST là gì?
- 22. Danh sách kiểm tra cho các lỗ hổng lập trình trang web
- 23. Có lỗ hổng bảo mật nào trong mã PHP này không?
- 24. lỗ hổng triển khai java android .. chúng có được ghi lại không?
- 25. Tại sao viết vào clipboard trong JS được coi là một lỗ hổng bảo mật?
- 26. Python 3, Có lỗ hổng bảo mật đã biết nào trong ast.literal_eval (node_or_string) không?
- 27. Kiểm tra lỗ hổng bảo mật trên các ứng dụng web
- 28. Các lỗ hổng để tạo thư viện chung (.so) với thư viện tĩnh (.a)
- 29. Không phải là JavaScript setTimeout và setInterval có một số lỗ hổng bảo mật tiềm năng
- 30. Phương pháp tìm lỗ hổng trong dữ liệu chuỗi thời gian trong MySQL?
Điều này giống như việc học. – Emyr