1.01 | XXE
Bài viết này sẽ hướng dẫn cách tấn công XXE trên WebGoat 2023.8
Bài viết này sẽ hướng dẫn cách tấn công XXE trên WebGoat 2023.8
Trong XML, Entity là các thành phần có thể thay thế bằng nội dung cụ thể khi XML được parse. Có 3 loại chính: 1️⃣ Internal Entity – Được định nghĩa trong.
Khi email.xml được xử lý, nó sẽ tham chiếu đến email.dtd để xác định cấu trúc hợp lệ.
Trước tiên, thử gửi một bình luận bình thường để xem request được gửi như thế nào.
Chặn request bằng Burp Suite/ZAP Proxy, sau đó thay thế body như sau:
Parser có bị ảnh hưởng bởi XXE không? ✅ Có sử dụng XMLInputFactory.newInstance() mà không vô hiệu hóa thực thể bên ngoài không? ✅ Có thuộc tính.
Trong trường hợp sử dụng Windows, bạn có thể thay đổi đường dẫn file C:\Windows\System32\drivers\etc\hosts thay cho /etc/passwd để kiểm tra.
Bài tập này kiểm tra xem API có bị tấn công XXE (XML External Entity) hay không.
Trong bài trước, ta đã thấy XXE Injection có thể được dùng để đọc file hệ thống. Nhưng ngoài việc đọc dữ liệu, XXE cũng có thể gây tấn công từ chối dịch vụ.
Làm thế nào để kiểm tra xem XXE có thành công hay không? 👉 Gửi dữ liệu đến một server do kẻ tấn công kiểm soát.
Đây là bài tập Blind XXE nâng cao, yêu cầu bạn tạo một file DTD để tải nội dung của tệp secret.txt từ server WebGoat lên WebWolf. Dưới đây là hướng dẫn chi.
Nếu ứng dụng không bắt buộc dùng XML, hãy cân nhắc sử dụng JSON, vì JSON không hỗ trợ các thực thể XML (<!ENTITY>), giảm thiểu rủi ro XXE.
Phân tích mã tĩnh (Static Code Analysis) giúp tìm kiếm lỗ hổng bảo mật trong code mà không cần chạy ứng dụng. Công cụ phổ biến nhất để phân tích mã tĩnh là.