{"version":1,"pages":[{"id":"ODEz2Lizj4XYLOsS6hKy","title":"La Biblia del Hacking en Web","pathname":"/web","siteSpaceId":"sitesp_Rb80K","description":"Desarrollado por Spartan-Cybersecurity"},{"id":"PzokdLdJ0i6EOxCRVZjv","title":"ADVERTENCIA","pathname":"/web/la-biblia-del-hacking-en-web/advertencia","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"La Biblia del Hacking en Web"}]},{"id":"TUBMKcj8UNiCfRTIjUFk","title":"Conoce a tu academia","pathname":"/web/la-biblia-del-hacking-en-web/conoce-a-tu-academia","siteSpaceId":"sitesp_Rb80K","description":"¿Quienes somos?","breadcrumbs":[{"label":"La Biblia del Hacking en Web"}]},{"id":"VTdxVs9mXLM2yG1RmfDc","title":"Conoce a tu instructor","pathname":"/web/la-biblia-del-hacking-en-web/conoce-a-tu-instructor","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"La Biblia del Hacking en Web"}]},{"id":"FH4ZggJyTcgJ2cy1qHYi","title":"Aprende Hacking Web con los laboratorios de PortSwigger","pathname":"/web/la-biblia-del-hacking-en-web/aprende-hacking-web-con-los-laboratorios-de-portswigger","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"La Biblia del Hacking en Web"}]},{"id":"lTzKHF9hJFaTiHd4sXQM","title":"¿SQL Injection?","pathname":"/web/sql-injection/sql-injection","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"SQL Injection"}]},{"id":"3wnOI8O54spAQq6rDhD2","title":"Lab 1: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data","pathname":"/web/sql-injection/lab-1-sql-injection-vulnerability-in-where-clause-allowing-retrieval-of-hidden-data","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data","breadcrumbs":[{"label":"SQL Injection"}]},{"id":"2IL8dGOmQfgl3fqwA8ps","title":"Lab 2: SQL injection vulnerability allowing login bypass","pathname":"/web/sql-injection/lab-2-sql-injection-vulnerability-allowing-login-bypass","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/sql-injection/lab-login-bypass","breadcrumbs":[{"label":"SQL Injection"}]},{"id":"FpgpCpbVg5UyVPWDY0cV","title":"Lab 3: SQL injection attack, querying the database type and version on Oracle","pathname":"/web/sql-injection/lab-3-sql-injection-attack-querying-the-database-type-and-version-on-oracle","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/sql-injection/examining-the-database/lab-querying-database-version-oracle","breadcrumbs":[{"label":"SQL Injection"}]},{"id":"NJt477x8Rtmsb4Xo9MG4","title":"Lab 4: SQL injection attack, querying the database type and version on MySQL and Microsoft","pathname":"/web/sql-injection/lab-4-sql-injection-attack-querying-the-database-type-and-version-on-mysql-and-microsoft","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/sql-injection/examining-the-database/lab-querying-database-version-mysql-microsoft","breadcrumbs":[{"label":"SQL Injection"}]},{"id":"2OijYntCK06nwRW7dOsg","title":"Lab 5: SQL injection attack, listing the database contents on non-Oracle databases","pathname":"/web/sql-injection/lab-5-sql-injection-attack-listing-the-database-contents-on-non-oracle-databases","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/sql-injection/examining-the-database/lab-listing-database-contents-non-oracle","breadcrumbs":[{"label":"SQL Injection"}]},{"id":"zVtKX24s0nAntqgTkGKN","title":"Lab 6: SQL injection attack, listing the database contents on Oracle","pathname":"/web/sql-injection/lab-6-sql-injection-attack-listing-the-database-contents-on-oracle","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/sql-injection/examining-the-database/lab-listing-database-contents-oracle","breadcrumbs":[{"label":"SQL Injection"}]},{"id":"E3tUD5dzt3YNMOcbTaQ1","title":"¿XSS?","pathname":"/web/cross-site-scripting/xss","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Cross Site Scripting"}]},{"id":"zQHywNR9e9Ky5PYaSvfd","title":"Lab 1: Reflected XSS into HTML context with nothing encoded","pathname":"/web/cross-site-scripting/lab-1-reflected-xss-into-html-context-with-nothing-encoded","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/cross-site-scripting/reflected/lab-html-context-nothing-encoded","breadcrumbs":[{"label":"Cross Site Scripting"}]},{"id":"bgX0m245h9Lf4sEygFH8","title":"Lab 2: Stored XSS into HTML context with nothing encoded","pathname":"/web/cross-site-scripting/lab-2-stored-xss-into-html-context-with-nothing-encoded","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/cross-site-scripting/stored/lab-html-context-nothing-encoded","breadcrumbs":[{"label":"Cross Site Scripting"}]},{"id":"R9mkAjYi8nPD5vlHkKr6","title":"Lab 3: DOM XSS in document.write sink using source location.search","pathname":"/web/cross-site-scripting/lab-3-dom-xss-in-document.write-sink-using-source-location.search","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-document-write-sink","breadcrumbs":[{"label":"Cross Site Scripting"}]},{"id":"a974NWRcH5a3LhaYA9Hk","title":"Lab 4: DOM XSS in innerHTML sink using source location.search","pathname":"/web/cross-site-scripting/lab-4-dom-xss-in-innerhtml-sink-using-source-location.search","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-innerhtml-sink","breadcrumbs":[{"label":"Cross Site Scripting"}]},{"id":"wLnaVv3qS89Ea28sGruW","title":"Lab 5: DOM XSS in jQuery anchor href attribute sink using location.search source","pathname":"/web/cross-site-scripting/lab-5-dom-xss-in-jquery-anchor-href-attribute-sink-using-location.search-source","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-jquery-href-attribute-sink","breadcrumbs":[{"label":"Cross Site Scripting"}]},{"id":"fuQhz2JQat7e8ROiZMEO","title":"¿Clickjacking?","pathname":"/web/clickjacking/clickjacking","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"ClickJacking"}]},{"id":"yYgB7MPLA6YMhzqbGbNS","title":"Lab 1: Basic clickjacking with CSRF token protection","pathname":"/web/clickjacking/lab-1-basic-clickjacking-with-csrf-token-protection","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/clickjacking/lab-basic-csrf-protected","breadcrumbs":[{"label":"ClickJacking"}]},{"id":"rwjvj5B2pPJtqGEjl0Hu","title":"¿Control de Acceso?","pathname":"/web/access-control-vulnerabilities/control-de-acceso","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Access control vulnerabilities"}]},{"id":"gfPqIQqPzwkw1ViO1g6G","title":"Lab 1: Unprotected admin functionality","pathname":"/web/access-control-vulnerabilities/lab-1-unprotected-admin-functionality","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/access-control/lab-unprotected-admin-functionality","breadcrumbs":[{"label":"Access control vulnerabilities"}]},{"id":"cJCv62GQsk6YpGMwqXwV","title":"Lab 3: User role controlled by request parameter","pathname":"/web/access-control-vulnerabilities/lab-3-user-role-controlled-by-request-parameter","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Access control vulnerabilities"}]},{"id":"CnJmTpSxIK4729GJJz5K","title":"¿Path Traversal?","pathname":"/web/path-traversal/path-traversal","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Path traversal"}]},{"id":"7vFkT9lSSB8U35xndsf8","title":"Lab 1: File path traversal, simple case","pathname":"/web/path-traversal/lab-1-file-path-traversal-simple-case","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/file-path-traversal/lab-simple","breadcrumbs":[{"label":"Path traversal"}]},{"id":"YxjgSe8rRa8qXLyFBv99","title":"Lab 2: File path traversal, traversal sequences blocked with absolute path bypass","pathname":"/web/path-traversal/lab-2-file-path-traversal-traversal-sequences-blocked-with-absolute-path-bypass","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass","breadcrumbs":[{"label":"Path traversal"}]},{"id":"T3CwTfQZWrDRPn1RZOnG","title":"Lab 3: File path traversal, traversal sequences stripped non-recursively","pathname":"/web/path-traversal/lab-3-file-path-traversal-traversal-sequences-stripped-non-recursively","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/file-path-traversal/lab-sequences-stripped-non-recursively","breadcrumbs":[{"label":"Path traversal"}]},{"id":"O8F6bbY3cmVUIT4Dz7Dl","title":"¿XML external entity?","pathname":"/web/xml-external-entity-xxe-injection/xml-external-entity","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"XML external entity (XXE) injection"}]},{"id":"VRU9gglNugk5EfArWJT0","title":"Lab 1: Exploiting XXE using external entities to retrieve files","pathname":"/web/xml-external-entity-xxe-injection/lab-1-exploiting-xxe-using-external-entities-to-retrieve-files","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/xxe/lab-exploiting-xxe-to-retrieve-files","breadcrumbs":[{"label":"XML external entity (XXE) injection"}]},{"id":"g8BBloPMib4hhYbtiT9H","title":"Lab 2: Exploiting XXE to perform SSRF attacks","pathname":"/web/xml-external-entity-xxe-injection/lab-2-exploiting-xxe-to-perform-ssrf-attacks","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/xxe/lab-exploiting-xxe-to-perform-ssrf","breadcrumbs":[{"label":"XML external entity (XXE) injection"}]},{"id":"1d1txpIkWacVwhl3MkKp","title":"Lab 3: Blind XXE with out-of-band interaction","pathname":"/web/xml-external-entity-xxe-injection/lab-3-blind-xxe-with-out-of-band-interaction","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/xxe/blind/lab-xxe-with-out-of-band-interaction","breadcrumbs":[{"label":"XML external entity (XXE) injection"}]},{"id":"cm83saFCeillLb7dMWlU","title":"¿JWT?","pathname":"/web/jwt/jwt","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"JWT"}]},{"id":"o04fdwwgit4j6RLKY7Ig","title":"Lab 1: JWT authentication bypass via unverified signature","pathname":"/web/jwt/lab-1-jwt-authentication-bypass-via-unverified-signature","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-unverified-signature","breadcrumbs":[{"label":"JWT"}]},{"id":"TRqpqQtHVM7UCdicNTvF","title":"Lab 2: JWT authentication bypass via flawed signature verification","pathname":"/web/jwt/lab-2-jwt-authentication-bypass-via-flawed-signature-verification","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-flawed-signature-verification","breadcrumbs":[{"label":"JWT"}]},{"id":"tOx8rwCWaGMvJv94jeYj","title":"Lab 3: JWT authentication bypass via weak signing key","pathname":"/web/jwt/lab-3-jwt-authentication-bypass-via-weak-signing-key","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-weak-signing-key","breadcrumbs":[{"label":"JWT"}]},{"id":"G1YJngRk4kr6SZjbL1IZ","title":"Lab 4: JWT authentication bypass via jwk header injection","pathname":"/web/jwt/lab-4-jwt-authentication-bypass-via-jwk-header-injection","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-jwk-header-injection","breadcrumbs":[{"label":"JWT"}]},{"id":"bpjy4drwkG8Cqv7AsejU","title":"Lab 5: JWT authentication bypass via jku header injection","pathname":"/web/jwt/lab-5-jwt-authentication-bypass-via-jku-header-injection","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-jku-header-injection","breadcrumbs":[{"label":"JWT"}]},{"id":"sMMEl1cA2wDuMv0hLjz1","title":"¿SSRF?","pathname":"/web/server-side-request-forgery-ssrf/ssrf","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Server-side request forgery (SSRF)"}]},{"id":"2UFRbmPvCs34VSLvArGA","title":"Lab 1: Basic SSRF against the local server","pathname":"/web/server-side-request-forgery-ssrf/lab-1-basic-ssrf-against-the-local-server","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Server-side request forgery (SSRF)"}]},{"id":"gTW6gXw4c43Y0abdPGkL","title":"¿OS Command Injection?","pathname":"/web/os-command-injection/os-command-injection","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"OS command injection"}]},{"id":"kkvaxcdRQYhHcROgCJgz","title":"Lab 1: OS command injection, simple case","pathname":"/web/os-command-injection/lab-1-os-command-injection-simple-case","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"OS command injection"}]},{"id":"oy2t1QmU8pHPhcnIuzDm","title":"¿Authentication?","pathname":"/web/authentication/authentication","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Authentication"}]},{"id":"Juim0EyoJvLNH8smf4NU","title":"Lab 1: Username enumeration via different responses","pathname":"/web/authentication/lab-1-username-enumeration-via-different-responses","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Authentication"}]},{"id":"eIE5CwdXfvvIxAx3mLf5","title":"¿HTTP request smuggling?","pathname":"/web/http-request-smuggling/http-request-smuggling","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"HTTP request smuggling"}]},{"id":"8dvpvD6H5wV9gHeFbkYy","title":"Lab 1: HTTP request smuggling, confirming a CL.TE vulnerability via differential responses","pathname":"/web/http-request-smuggling/lab-1-http-request-smuggling-confirming-a-cl.te-vulnerability-via-differential-responses","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/request-smuggling/finding/lab-confirming-cl-te-via-differential-responses","breadcrumbs":[{"label":"HTTP request smuggling"}]},{"id":"9m10NypSiEfmVPO7qD2g","title":"¿Server-side template injection?","pathname":"/web/server-side-template-injection/server-side-template-injection","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Server-side template injection"}]},{"id":"q5V4Hvv7x4uBwdKDTddS","title":"Lab 1: Basic server-side template injection","pathname":"/web/server-side-template-injection/lab-1-basic-server-side-template-injection","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/server-side-template-injection/exploiting/lab-server-side-template-injection-basic","breadcrumbs":[{"label":"Server-side template injection"}]},{"id":"ZUcl5QoHhdEf0N5Z8Y6e","title":"Lab 1: DOM XSS using web messages","pathname":"/web/dom-based-vulnerabilities/lab-1-dom-xss-using-web-messages","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/dom-based/controlling-the-web-message-source/lab-dom-xss-using-web-messages","breadcrumbs":[{"label":"DOM-based vulnerabilities"}]},{"id":"qy30rPy8hjtYK3qMwm6I","title":"Lab 2: DOM XSS using web messages and a JavaScript URL","pathname":"/web/dom-based-vulnerabilities/lab-2-dom-xss-using-web-messages-and-a-javascript-url","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/dom-based/controlling-the-web-message-source/lab-dom-xss-using-web-messages-and-a-javascript-url","breadcrumbs":[{"label":"DOM-based vulnerabilities"}]},{"id":"n9J2tZkPjIoKQPyEcXdx","title":"Lab #1: Manipulating WebSocket messages to exploit vulnerabilities","pathname":"/web/websockets/lab-1-manipulating-websocket-messages-to-exploit-vulnerabilities","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/websockets/lab-manipulating-messages-to-exploit-vulnerabilities","breadcrumbs":[{"label":"WebSockets"}]},{"id":"fGAJqpw5Brs8eKMWfJbx","title":"¿Prototype Pollution?","pathname":"/web/prototype-pollution/prototype-pollution","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"ZG2lUAmN2g7XZK62xnDH","title":"Lab 1: Client-side prototype pollution via browser APIs","pathname":"/web/prototype-pollution/lab-1-client-side-prototype-pollution-via-browser-apis","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/prototype-pollution/client-side/browser-apis/lab-prototype-pollution-client-side-prototype-pollution-via-browser-apis","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"WKdN5AASpGEqbEfZYRbc","title":"Utilizando DOM Invader","pathname":"/web/prototype-pollution/lab-1-client-side-prototype-pollution-via-browser-apis/utilizando-dom-invader","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Prototype pollution"},{"label":"Lab 1: Client-side prototype pollution via browser APIs"}]},{"id":"Bj6XYXHBQJagqfdRquRH","title":"Lab 2: DOM XSS via client-side prototype pollution","pathname":"/web/prototype-pollution/lab-2-dom-xss-via-client-side-prototype-pollution","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/prototype-pollution/client-side/lab-prototype-pollution-dom-xss-via-client-side-prototype-pollution","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"KOa3eBhC16aSQPPCye3H","title":"Lab 3: DOM XSS via an alternative prototype pollution vector","pathname":"/web/prototype-pollution/lab-3-dom-xss-via-an-alternative-prototype-pollution-vector","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/prototype-pollution/client-side/lab-prototype-pollution-dom-xss-via-an-alternative-prototype-pollution-vector","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"Rnvz5epbJCX3caY0i0uL","title":"Utilizando DOM Invader","pathname":"/web/prototype-pollution/lab-3-dom-xss-via-an-alternative-prototype-pollution-vector/utilizando-dom-invader","siteSpaceId":"sitesp_Rb80K","breadcrumbs":[{"label":"Prototype pollution"},{"label":"Lab 3: DOM XSS via an alternative prototype pollution vector"}]},{"id":"E6QPvRKTzjSOhajiNKi5","title":"Lab 4: Client-side prototype pollution via flawed sanitization","pathname":"/web/prototype-pollution/lab-4-client-side-prototype-pollution-via-flawed-sanitization","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/prototype-pollution/client-side/lab-prototype-pollution-client-side-prototype-pollution-via-flawed-sanitization","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"7aN08V3ayMNGZ4QW7r7J","title":"Lab 5: Client-side prototype pollution in third-party libraries","pathname":"/web/prototype-pollution/lab-5-client-side-prototype-pollution-in-third-party-libraries","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/prototype-pollution/client-side/lab-prototype-pollution-client-side-prototype-pollution-in-third-party-libraries","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"mLj2DHrL5W44nePje4Jm","title":"Lab 6: Privilege escalation via server-side prototype pollution","pathname":"/web/prototype-pollution/lab-6-privilege-escalation-via-server-side-prototype-pollution","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/prototype-pollution/server-side/lab-privilege-escalation-via-server-side-prototype-pollution","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"pMFO3byVlZjJGfVgSMXP","title":"Lab 7: Detecting server-side prototype pollution without polluted property reflection","pathname":"/web/prototype-pollution/lab-7-detecting-server-side-prototype-pollution-without-polluted-property-reflection","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/prototype-pollution/server-side/lab-detecting-server-side-prototype-pollution-without-polluted-property-reflection","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"pZ12bdGDB358PhHKVB8C","title":"Lab 8: Bypassing flawed input filters for server-side prototype pollution","pathname":"/web/prototype-pollution/lab-8-bypassing-flawed-input-filters-for-server-side-prototype-pollution","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/prototype-pollution/server-side/lab-bypassing-flawed-input-filters-for-server-side-prototype-pollution","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"z260bYOe6aq0KBoUImHw","title":"Lab 9: Remote code execution via server-side prototype pollution","pathname":"/web/prototype-pollution/lab-9-remote-code-execution-via-server-side-prototype-pollution","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/prototype-pollution/server-side/lab-remote-code-execution-via-server-side-prototype-pollution","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"aQ8CqA7zkIqfZRnaA9BX","title":"Lab 10: Exfiltrating sensitive data via server-side prototype pollution","pathname":"/web/prototype-pollution/lab-10-exfiltrating-sensitive-data-via-server-side-prototype-pollution","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/prototype-pollution/server-side/lab-exfiltrating-sensitive-data-via-server-side-prototype-pollution","breadcrumbs":[{"label":"Prototype pollution"}]},{"id":"h4MKfSYRflLWPegyBuJO","title":"Lab 1: Accessing private GraphQL posts","pathname":"/web/graphql/lab-1-accessing-private-graphql-posts","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/graphql/lab-graphql-reading-private-posts","breadcrumbs":[{"label":"GraphQL"}]},{"id":"VWSzQSlFBEMLmI3R0b7i","title":"Lab 1: Web cache poisoning with an unkeyed header","pathname":"/web/web-cache-poisoning/lab-1-web-cache-poisoning-with-an-unkeyed-header","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/web-cache-poisoning/exploiting-design-flaws/lab-web-cache-poisoning-with-an-unkeyed-header","breadcrumbs":[{"label":"Web cache poisoning"}]},{"id":"yf5TY54c83aJ23SktxqC","title":"Lab #2 - CORS vulnerability with trusted null origin","pathname":"/web/cors/lab-2-cors-vulnerability-with-trusted-null-origin","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/cors/lab-null-origin-whitelisted-attack","breadcrumbs":[{"label":"CORS"}]},{"id":"OldgrqFCi2R97PCW4M5E","title":"Lab 3: CORS vulnerability with trusted insecure protocols","pathname":"/web/cors/lab-3-cors-vulnerability-with-trusted-insecure-protocols","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/cors/lab-breaking-https-attack","breadcrumbs":[{"label":"CORS"}]},{"id":"wujbb0T2dqxpFRr3kmoX","title":"Lab #1: Exploiting an API endpoint using documentation","pathname":"/web/api-testing/lab-1-exploiting-an-api-endpoint-using-documentation","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/api-testing/lab-exploiting-api-endpoint-using-documentation","breadcrumbs":[{"label":"API testing"}]},{"id":"eINUsEf4wXPUTuPfm6Ha","title":"Lab #2: Exploiting server-side parameter pollution in a query string","pathname":"/web/api-testing/lab-2-exploiting-server-side-parameter-pollution-in-a-query-string","siteSpaceId":"sitesp_Rb80K","description":"","breadcrumbs":[{"label":"API testing"}]},{"id":"24fHqE9rJ3QQYh280kgq","title":"Lab #3: Finding and exploiting an unused API endpoint","pathname":"/web/api-testing/lab-3-finding-and-exploiting-an-unused-api-endpoint","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/api-testing/lab-exploiting-unused-api-endpoint","breadcrumbs":[{"label":"API testing"}]},{"id":"8uu8n93lcoqTlsrW5Lxh","title":"Lab #4: Exploiting a mass assignment vulnerability","pathname":"/web/api-testing/lab-4-exploiting-a-mass-assignment-vulnerability","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/api-testing/lab-exploiting-mass-assignment-vulnerability","breadcrumbs":[{"label":"API testing"}]},{"id":"XPoTqENKW3MZaE8Dbba6","title":"Lab #5: Exploiting server-side parameter pollution in a REST URL","pathname":"/web/api-testing/lab-5-exploiting-server-side-parameter-pollution-in-a-rest-url","siteSpaceId":"sitesp_Rb80K","description":"https://portswigger.net/web-security/api-testing/server-side-parameter-pollution/lab-exploiting-server-side-parameter-pollution-in-rest-url","breadcrumbs":[{"label":"API testing"}]}]}