> ## Documentation Index
> Fetch the complete documentation index at: https://rootea.es/llms.txt
> Use this file to discover all available pages before exploring further.

# Access Control / IDOR

> Cross-platform resources for Access Control / IDOR: curated HTB machines, PortSwigger labs and TryHackMe rooms with validated writeups and related skills.

# Access Control / IDOR

This page aggregates **cross-platform resources to practice Access Control / IDOR**: retired Hack The Box machines, PortSwigger Web Security Academy labs and TryHackMe rooms, plus curated resources (HackTricks, PortSwigger, etc.) and related skills.

## Curated resources

| Source      | Link                                                                                                       |
| ----------- | ---------------------------------------------------------------------------------------------------------- |
| PortSwigger | [https://portswigger.net/web-security/access-control](https://portswigger.net/web-security/access-control) |

## HTB machines practicing Access Control / IDOR (1)

| Machine                                     | OS    | Difficulty                                           |
| ------------------------------------------- | ----- | ---------------------------------------------------- |
| [Cache](/en/htb/machines/linux/medio/cache) | Linux | <span className="dbadge dbadge-medium">MEDIUM</span> |

## PortSwigger labs practicing Access Control / IDOR (14)

| Lab                                                                                                                                                                                              | Difficulty                                                 | Topic                          | Official                                                                                                                                              |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Bypassing access controls using email address parsing discrepancies](/en/portswigger/labs/logic-flaws/examples-logic-flaws-bypassing-access-controls-using-email-address-parsing-discrepancies) | <span className="dbadge dbadge-easy">APPRENTICE</span>     | Business Logic Vulnerabilities | [Open](https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-bypassing-access-controls-using-email-address-parsing-discrepancies) |
| [Insecure direct object references](/en/portswigger/labs/access-control/insecure-direct-object-references)                                                                                       | <span className="dbadge dbadge-easy">APPRENTICE</span>     | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-insecure-direct-object-references)                                                     |
| [Unprotected admin functionality](/en/portswigger/labs/access-control/unprotected-admin-functionality)                                                                                           | <span className="dbadge dbadge-easy">APPRENTICE</span>     | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-unprotected-admin-functionality)                                                       |
| [Unprotected admin functionality with unpredictable URL](/en/portswigger/labs/access-control/unprotected-admin-functionality-with-unpredictable-url)                                             | <span className="dbadge dbadge-easy">APPRENTICE</span>     | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-unprotected-admin-functionality-with-unpredictable-url)                                |
| [User ID controlled by request parameter](/en/portswigger/labs/access-control/user-id-controlled-by-request-parameter)                                                                           | <span className="dbadge dbadge-easy">APPRENTICE</span>     | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-user-id-controlled-by-request-parameter)                                               |
| [User ID controlled by request parameter with data leakage in redirect](/en/portswigger/labs/access-control/user-id-controlled-by-request-parameter-with-data-leakage-in-redirect)               | <span className="dbadge dbadge-easy">APPRENTICE</span>     | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-user-id-controlled-by-request-parameter-with-data-leakage-in-redirect)                 |
| [User ID controlled by request parameter with password disclosure](/en/portswigger/labs/access-control/user-id-controlled-by-request-parameter-with-password-disclosure)                         | <span className="dbadge dbadge-easy">APPRENTICE</span>     | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-user-id-controlled-by-request-parameter-with-password-disclosure)                      |
| [User ID controlled by request parameter, with unpredictable user IDs](/en/portswigger/labs/access-control/user-id-controlled-by-request-parameter-with-unpredictable-user-ids)                  | <span className="dbadge dbadge-easy">APPRENTICE</span>     | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-user-id-controlled-by-request-parameter-with-unpredictable-user-ids)                   |
| [User role can be modified in user profile](/en/portswigger/labs/access-control/user-role-can-be-modified-in-user-profile)                                                                       | <span className="dbadge dbadge-easy">APPRENTICE</span>     | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-user-role-can-be-modified-in-user-profile)                                             |
| [User role controlled by request parameter](/en/portswigger/labs/access-control/user-role-controlled-by-request-parameter)                                                                       | <span className="dbadge dbadge-easy">APPRENTICE</span>     | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-user-role-controlled-by-request-parameter)                                             |
| [Method-based access control can be circumvented](/en/portswigger/labs/access-control/method-based-access-control-can-be-circumvented)                                                           | <span className="dbadge dbadge-medium">PRACTITIONER</span> | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-method-based-access-control-can-be-circumvented)                                       |
| [Multi-step process with no access control on one step](/en/portswigger/labs/access-control/multi-step-process-with-no-access-control-on-one-step)                                               | <span className="dbadge dbadge-medium">PRACTITIONER</span> | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-multi-step-process-with-no-access-control-on-one-step)                                 |
| [Referer-based access control](/en/portswigger/labs/access-control/referer-based-access-control)                                                                                                 | <span className="dbadge dbadge-medium">PRACTITIONER</span> | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-referer-based-access-control)                                                          |
| [URL-based access control can be circumvented](/en/portswigger/labs/access-control/url-based-access-control-can-be-circumvented)                                                                 | <span className="dbadge dbadge-medium">PRACTITIONER</span> | Access Control Vulnerabilities | [Open](https://portswigger.net/web-security/access-control/lab-url-based-access-control-can-be-circumvented)                                          |

## TryHackMe rooms practicing Access Control / IDOR (9)

| Room                                                                   | Difficulty                                         | Type        | Access  | Official                                                    |
| ---------------------------------------------------------------------- | -------------------------------------------------- | ----------- | ------- | ----------------------------------------------------------- |
| [Advent of Cyber 2022](/en/tryhackme/rooms/adventofcyber4)             | <span className="dbadge dbadge-easy">EASY</span>   | Walkthrough | 🟢 Free | [Open](https://tryhackme.com/room/adventofcyber4)           |
| [Advent of Cyber 3 (2021)](/en/tryhackme/rooms/adventofcyber3)         | <span className="dbadge dbadge-easy">EASY</span>   | Walkthrough | 🟢 Free | [Open](https://tryhackme.com/room/adventofcyber3)           |
| [Broken Access Control](/en/tryhackme/rooms/owaspbrokenaccesscontrol)  | <span className="dbadge dbadge-easy">EASY</span>   | Walkthrough | 🟢 Free | [Open](https://tryhackme.com/room/owaspbrokenaccesscontrol) |
| [Corridor](/en/tryhackme/rooms/corridor)                               | <span className="dbadge dbadge-easy">EASY</span>   | Challenge   | 🟢 Free | [Open](https://tryhackme.com/room/corridor)                 |
| [IDOR](/en/tryhackme/rooms/idor)                                       | <span className="dbadge dbadge-easy">EASY</span>   | Walkthrough | 🔵 VIP  | [Open](https://tryhackme.com/room/idor)                     |
| [Introduction to CryptOps](/en/tryhackme/rooms/introductiontocryptops) | <span className="dbadge dbadge-easy">EASY</span>   | Walkthrough | 🟢 Free | [Open](https://tryhackme.com/room/introductiontocryptops)   |
| [XDR: Introduction](/en/tryhackme/rooms/xdrintroduction)               | <span className="dbadge dbadge-easy">MEDIUM</span> | Walkthrough | 🟢 Free | [Open](https://tryhackme.com/room/xdrintroduction)          |
| [envizon](/en/tryhackme/rooms/envizon)                                 | <span className="dbadge dbadge-easy">HARD</span>   | Challenge   | 🟢 Free | [Open](https://tryhackme.com/room/envizon)                  |
| [Hacking Hadoop](/en/tryhackme/rooms/hackinghadoop)                    | <span className="dbadge dbadge-easy">HARD</span>   | Walkthrough | 🟢 Free | [Open](https://tryhackme.com/room/hackinghadoop)            |

***

← [Back to the full glossary](/en/glossary)

<script type="application/ld+json">
  {`{"@context":"https://schema.org","@type":"DefinedTerm","name":"Access Control / IDOR","termCode":"access-control","inLanguage":"en","url":"https://rootea.es/en/skills/access-control","inDefinedTermSet":{"@type":"DefinedTermSet","name":"Tactical pentesting glossary","url":"https://rootea.es/en/glossary"}}`}
</script>

<script type="application/ld+json">
  {`{"@context":"https://schema.org","@type":"ItemList","name":"HTB machines practicing Access Control / IDOR","numberOfItems":1,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://rootea.es/en/htb/machines/linux/medio/cache","name":"Cache"}]}`}
</script>

*Last updated: 2026-06-07*
