Помощь

Практика

Практика «Security» — SQLi, XSS, авторизация

Три учебные песочницы с уязвимостями, как они проверяются и где проходит граница дозволенного.

/practice/security — три учебные страницы с намеренно оставленными уязвимостями: SQL-инъекция, XSS и сломанная авторизация. На middle-собеседовании тестировщика о таких уязвимостях спрашивают, а на работе их нужно уметь заметить и грамотно описать в баг-репорте. Раздел открыт в сопровождении.

Важно: только в разрешённых местах

Приёмы из этих заданий нельзя применять к чужим системам без письменного разрешения владельца — это незаконно. В России это статья 272 УК РФ, в других странах есть похожие законы. Проверять безопасность можно:

  1. По письменному соглашению с владельцем системы, в оговорённых границах.
  2. В программах bug bounty — только в пределах их правил.
  3. На учебных площадках, созданных для этого: 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.
  • Не учим фишингу и социальной инженерии — это за пределами работы тестировщика.

Что дальше