В лабе используется генерация токенов с использование временных меток для сброса пароля. Для решения необходимо:
- Найти уязвимость;
- Подобрать правильный токен для сброса пароля пользователя
carlos; - Войти в его учетную запись;
- Войти в панель администратора и удалить пользователя
carlos;
Для входа в учетную запись можно использовать креды wiener:peter.
https://0a5f00c30403881e802ef3cd006f00e3.web-security-academy.net/
Solution
Зайду в личный кабинет. Нашел тут форму сброса пароля, но это меня ни к чему не приблизило. Попробую изменить пароль от аккаунта:
POST /forgot-password HTTP/2
Host: 0a5f00c30403881e802ef3cd006f00e3.web-security-academy.net
Cookie: phpsessionid=DIpD5aGkTIZQYw0xrsmlM8vFFsiHR9lq
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:140.0) Gecko/20100101 Firefox/140.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://0a5f00c30403881e802ef3cd006f00e3.web-security-academy.net/forgot-password
Content-Type: application/x-www-form-urlencoded
Content-Length: 53
Origin: https://0a5f00c30403881e802ef3cd006f00e3.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
csrf=FfroP7uyIK7VPlXRBakNp5RFNT9cjvPn&username=wiener
Меня отправило на почту, чтобы перейти по ссылке для сброса пароля:
https://0a5f00c30403881e802ef3cd006f00e3.web-security-academy.net/forgot-password?user=wiener&token=7154e804bbaab37083e3bb440ea7395a0e8f6466
Сделаю это еще пару раз:

Токен каждый раз разный и имеет фиксированную длину. Вероятно, это хеш от временной метки. Попробую параллельно отправлять запрос на сброс пароля для пользователя wiener и carlos. С первого раза не вышло… С пятого тоже) Посмотрев на время ответа, я увидел разницу в обработке. Возможно, пакеты обрабатываются последовательно. Поробую изменить или убрать значение сессии. Для этого просто удалю значение Cookies и отправлю новый запрос.


Теперь нужна лишь удача и терпение. Если все сработает, то токен для сброса пароля у пользователей wiener и carlos будет совпадать. Тогда можно будет изменить значение GET-параметра user на carlos в ссылке сброса пароля с почты. Да прибудет со мной сила:
https://0a5f00c30403881e802ef3cd006f00e3.web-security-academy.net/forgot-password?user=wiener&token=e05892ec1f8263cfde10458efbcc9bcb23ba1561
Спустя пару попыток у меня получилось:

Удалю пользователя:

P.S:
Есть более надежный способ, чем тестить ссылку каждый раз. Если добавить 2 запроса для сброса пароля в своем аккаунте, то на почту должно прилететь 2 одинаковые ссылки, а значит, для другого пользователя должна совпадать с этими:

Та да)