/practice/security — три учебные страницы с намеренно оставленными уязвимостями: SQL-инъекция, XSS и сломанная авторизация. На middle-собеседовании тестировщика о таких уязвимостях спрашивают, а на работе их нужно уметь заметить и грамотно описать в баг-репорте. Раздел открыт в сопровождении.
Важно: только в разрешённых местах
Приёмы из этих заданий нельзя применять к чужим системам без письменного разрешения владельца — это незаконно. В России это статья 272 УК РФ, в других странах есть похожие законы. Проверять безопасность можно:
- По письменному соглашению с владельцем системы, в оговорённых границах.
- В программах bug bounty — только в пределах их правил.
- На учебных площадках, созданных для этого: PortSwigger Web Security Academy, TryHackMe, HackTheBox.
Песочницы tomiddle работают полностью в вашем браузере и никуда не отправляют введённые данные. Не пытайтесь атаковать остальную платформу: это уже не учебное задание.
Три песочницы
SQL-инъекция — /practice/security/sqli
Учебная админка ShopMark с уязвимой формой входа. Под формой показан SQL-запрос, который «собрал бы» сервер из вашего ввода простой склейкой строк. Задача — подобрать ввод, который пустит без пароля, и понять, почему так вышло. Отдельно отмечается, что пароли в этой базе хранятся открытым текстом — это тоже уязвимость.
XSS — /practice/security/xss
Стена комментариев BugFinder: комментарии выводятся на страницу без экранирования. Задача — выполнить JavaScript из комментария и разобраться, как это исправляется.
Авторизация — /practice/security/auth
На одной странице собраны несколько ошибок: доступ к чужому профилю по параметру ?user_id (IDOR), сброс пароля до проверки токена, «скрытая» админка и JWT в localStorage. Нужно найти их и понять, как они связаны с XSS.
Как проверяется
Под каждой песочницей — вопросы: какой ввод сработал и почему, чем отличаются виды уязвимости, как их исправить. Ответы проверяет сервер, правильные ответы в браузер не передаются, поэтому достать их через DevTools нельзя.
Что не делаем
- Никаких атак на сторонние системы. Песочницы замкнуты в себе.
- Только публично известные классы уязвимостей из OWASP Top 10.
- Не учим фишингу и социальной инженерии — это за пределами работы тестировщика.
Что дальше
- Практика bug-hunt — там тоже встречаются баги безопасности
- Практика API Sandbox — для сценариев авторизации