Exploiting blind XXE to retrieve data via error messages

Link: https://portswigger.net/web-security/xxe/blind/lab-xxe-with-data-retrieval-via-error-messages

Description:

This lab has a "Check stock" feature that parses XML input but does not display the result.

To solve the lab, use an external DTD to trigger an error message that displays the contents of the /etc/passwd file.

The lab contains a link to an exploit server on a different domain where you can host your malicious DTD.

Proof of concept:

  1. Analisa web target

  2. Dari hasil analisa, didapati terdapat fitur Check stock yang menggunakan XML pada request body. Hal tersebut memungkinkan untuk dilakukan XXE Injection

  3. Seperti yang telah dijelaskan oleh judul lab, maka cari tahu payload basic XXE Error Based menggunakan remote DTD. Didapatkan payload seperti gambar dibawah atau bisa di akses di github ini

  4. Pada exploit server, masukan payload untuk di file DTDnya seperti gambar dibawah

  5. Jika sudah, pada endpoint Check stock, gunakan payload XXE Injection untuk mentrigger file DTD yang telah dibuat pada server exploit dengan mengarahkan ke URL server exploit. Jika sudah kirim request tersebut, maka data /etc/passwd pada server target berhasil diakses secara tidak sah dan dengan demikian tantangan lab ini berhasil diselesaikan

Thanks, Stay Ethical & Happy Hacking! 🍻

Last updated