hackXpert labs
All labs › Mass Assignment

🧩 Mass Assignment

Send the fields the form never showed you. If the server binds the whole body onto the object, your extra key is as good as the real ones.

4 labs and targetsfree, no accountlesson included
How broken access control actually works — taught by The XSS Rat

What it is

Authentication is who you are; authorisation is what you are allowed to touch. Broken access control is the app checking the first and forgetting the second, so an object id, a role field or a hidden admin route is all that stands between you and someone else's data.

How I attack it

  1. Make two accounts. Do everything as A, then replay A's requests with B's session and see what comes back.
  2. Change the identifier, then change the method, then change the content type. Many apps only guard the happy path.
  3. Hunt the functions nobody links to: admin routes in the JS bundle, old API versions, export and print endpoints.
  4. A 403 on the UI route means nothing if the API behind it answers. Always test the API directly.

Learn it from The XSS Rat

Free reference reading

The set 4

Easy

One extra property, no guard at all.

Medium

Some fields are filtered. Find the one that is not.

Hard

Allow-list in place. Work out what it still lets through.

API

Same bug against a JSON API, where nothing is hidden by a form.

Nothing matches thatClear the filter to see everything again.