Zap for IDOR

Recap of IDOR:

IDOR (Insecure Direct Object Reference) occurs when applications expose internal object identifiers (like user IDs or filenames) without proper authorization checks. This allows attackers to access or modify data belonging to other users simply by changing an identifier.

Recently, while going through this TryHackMe challenge level: ➡️ IDOR – Santa’s Little IDOR …I decided to revisit how ZAP can be used not just to reveal IDOR issues, but also to automate their discovery.


Identifying the IDOR

The challenge exposes a classic pattern: a user ID stored client‑side without any real access control. Here’s the interface showing the underlying issue: Image of an IDOR bug

By navigating to the storage section, you can clearly see that your access level is controlled by a simple numeric ID:

Image of the storage

If you manually update the ID and refresh the page… well, you suddenly have access to someone else’s panel. This is the essence of IDOR: no authentication check, no server‑side validation.


Using ZAP to Detect IDOR

Now, instead of manually editing IDs one by one, ZAP can help us find, inspect, and automate IDOR testing.

First, ZAP captures the vulnerable request:

Image of the IDOR

Once you identify the parameter to test, it’s time to fuzz it.


Automating the Hunt with ZAP Fuzzing

ZAP’s fuzzer allows you to throw a series of IDs at the endpoint to see which ones return valid data.

fuzz image

After launching the fuzzing session, we quickly start seeing meaningful responses:

Image of the result

A couple of IDs return different content — confirming that multiple objects are accessible without authorization. And just like that, the IDOR is fully mapped!


🎯 Final Thoughts

ZAP makes IDOR detection not only straightforward but also automatable. While manual testing is still important to understand context, fuzzing accelerates the process and uncovers cases you might miss doing things by hand.