Solving Portswigger Academy: Blind XXE with out-of-band interaction via XML parameter entities

Vishal
2 min readSep 24, 2024

This lab has a “Check stock” feature that parses XML input, but does not display any unexpected values, and blocks requests containing regular external entities.

To solve the lab, use a parameter entity to make the XML parser issue a DNS lookup and HTTP request to Burp Collaborator.

Let’s start by visiting the lab and click on any product.Then check the stock.Send the POST request to Check Sotck to repeater.

I will first try to use the payload used in previous lab.

payload used in previous lab

But is says “Entities are not allowed for security reasons”. As per hacktricks, in such case we need to use XML parameter entities.

What is parameter entities?

Payload used:

make note of space between % sign and entity name. When I sent request with above payload it says “Invalid Product ID”

This time it says parsing error, but when I checked the collaborator, I saw the DNS and HTTP requests.

This is how we are able to solve the lab.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response