---
# System prepended metadata

title: Exploiting XXE using external entities to retrieve files
tags: [XXE Injection]

---

# Exploiting XXE using external entities to retrieve files

* Yêu cầu của bài lab là khai thác lỗ hổng XXE Injection để đọc nội dung của file `/etc/passwd`. Bài lab còn gợi ý ở tính năng **Check stock** có chứa đầu vào XML. Chúng ta sẽ kiểm tra thử.
![Capture01](https://hackmd.io/_uploads/rkM7phDPa.png)

* Như hình dưới chúng ta sẽ thấy `productId` và `storeId` nằm trong cấu trúc XML.
![Capture02](https://hackmd.io/_uploads/HJG7ahPDT.png)

* Chúng ta sẽ thêm đoạn payload dưới đây để có thể đọc nội dung file `/etc/passwd`.
`<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>`
`<stockCheck><productId>&xxe;</productId><storeId>1</storeId></stockCheck>`
Sau khi gửi thì chúng ta đã đọc được nội dung file.
![Capture03](https://hackmd.io/_uploads/HyG7pnvPa.png)

* Hoàn thành bài lab.
![Capture04](https://hackmd.io/_uploads/r1Gma3PwT.png)
