Background
In this challenge, you’ll learn more about XXE(XML external entity injection)
. As usual, let’s start the instance via the Start button on the top-right, and browse the website.
In the about
page, we can see the site is using XML parsing
, and we can upload a sample in Trial
page, and view it on the View XML
page. Hmm… Maybe we can do a XXE, or XML external entity injection
?? Next, I started to google XXE file upload exploit
, and I found one PDF explaining that exploit in exploit-db. It said:
“If the application allows user to upload svg files on the system, then the XXE can be exploited using them, and a SVG file is to define graphics in XML format.”
Then I found a XXE inside SVG upload payload at PayloadsAllTheThings.
Let’s copy and paste it to our text editor. Also, According to the background of this challenge, the flag is in /var/www, so let’s modify the path from “file:///etc/hostname” to "file:///var/www/flag.txt"
, and save it as a SVG file.
Now, upload the SVG payload to Trial
page.
Upload successful!! Let’s go to the View XML
page to see is it work!
Yes!! We’ve the flag!
Trivia
Before I realized it’s a XXE, I’ve tried to upload a php reverse shell, but it doesn’t work. Lol