
Интерактивная, самостоятельно размещаемая платформа для обучения XSS с 33 постепенно усложняющимися задачами
💸 Если этот проект помогает вам, подумайте о поддержке в размере $10, чтобы он продолжал развиваться. Ссылка: https://rzp.io/rzp/zgkC6h5B
Интерактивная, самостоятельно размещаемая платформа для обучения XSS с 33 постепенно усложняющимися задачами — разработана для хакеров, пентестеров и разработчиков, желающих освоить межсайтовый скриптинг от основ до реальных эксплуатаций.
⚡ Создана для атакующих
⚡ Разработана для обучения
⚡ Спроектирована для простоты
33 прогрессивные XSS-задачи от простого отражения до продвинутой эксплуатации в реальных условиях.
| # | Название | Описание |
|---|---|---|
| 1 | Hello, Reflected XSS | Нет фильтров, нет кодирования. Ваш ввод напрямую отражается на странице. |
| 2 | Stored XSS Guestbook | Ваш ввод сохраняется и отображается для всех посетителей. Классический постоянный XSS. |
| # | Название | Описание |
|---|---|---|
| 3 | Script Tag Blocked | Сервер удаляет теги <script>. Найдите другой способ выполнить JavaScript. |
| 4 | Attribute Injection | Ваш ввод попадает в HTML-атрибут. Вырвитесь наружу и выполните код. |
| 5 | JavaScript Context | Ваш ввод помещается в строковую переменную JavaScript. Выйдите из контекста и внедрите код. |
| 28 | Markdown Injection | Наивный парсер Markdown преобразует ваш пост в HTML. Заставьте его выполнить JavaScript. |
| 32 | Filename Injection | Загрузите файл. Имя файла отображается в интерфейсе без санитизации. |
| # | Название | Описание |
|---|---|---|
| 6 | Event Handler Blocklist | Распространённые обработчики событий заблокированы. Найдите неочевидный, который фильтр пропустил. |
| 7 | Case & Keyword Filter | Агрессивный однопроходный фильтр. Используйте вложенные ключевые слова для их восстановления после удаления. |
| 8 | DOM-Based XSS | Уязвимость полностью находится в клиентском JavaScript, читающем из URL. |
| 25 | Open Redirect → XSS | Соедините открытый редирект с тегом meta-refresh для достижения XSS. |
| 27 | localStorage DOM XSS | Данные, сохранённые в localStorage, отображаются при перезагрузке без санитизации. |
| # | Название | Описание |
|---|---|---|
| 9 | href Injection with Filters | Ввод попадает в атрибут href ссылки с применением нескольких фильтров. |
| 10 | CSP Bypass via JSONP | Обойдите Content Security Policy, используя JSONP-эндпоинт того же источника. |
| 11 | Double Encoding Bypass | Эксплуатируйте двойное декодирование между WAF и приложением. |
| 12 | Client-Side Template Injection | Шаблонизатор вычисляет {{выражения}} с помощью eval. |
| 13 | postMessage XSS | Эксплуатируйте небезопасный обмен сообщениями между окнами без проверки источника. |
| 14 | SVG Upload XSS | Загружайте SVG-файлы и выполняйте полезные нагрузки, используя специфические возможности SVG. |
| 15 | Mutation XSS | Обойдите санитизацию, используя поведение мутаций DOM в браузере. |
| 16 | Recursive Keyword Filter | Фильтр зацикливается — используйте альтернативные контексты выполнения. |
| 17 | The Polyglot | Полезная нагрузка должна выполняться в контекстах HTML, атрибута и JS. |
| 18 | DOM Clobbering | Перезаписывайте глобальные переменные с помощью специально созданных HTML-элементов. |
| 19 | Prototype Pollution → XSS | Загрязните цепочку прототипов, чтобы добиться XSS без прямой инъекции HTML. |
| 20 | Base Tag Injection | Внедрите <base>, чтобы манипулировать загрузкой ресурсов и обойти CSP. |
| 21 | Dangling Markup Injection | Извлеките конфиденциальные данные, используя только инъекцию HTML (без JS). |
| 22 | JSON Injection in Script Block | Выйдите из контекста JSON внутри скриптового блока с nonce. |
| 23 | URL Scheme Bypass | Обойдите фильтры, блокирующие javascript:, с помощью трюков с кодированием. |
| 24 | CSS Injection Exfiltration | Используйте CSS для извлечения конфиденциальных данных без JavaScript. |
| 26 | CRLF → Response Splitting | Внедрите заголовки для расщепления HTTP-ответа и инъекции HTML. |
| 29 | iframe Sandbox Escape | Обойдите небезопасные настройки песочницы iframe. |
| 30 | AngularJS Sandbox Escape | Эксплуатируйте техники обхода песочницы выражений AngularJS. |
| 31 | Web Component Slot Injection | Внедрите в Shadow DOM через рендеринг слотов. |
| 33 | Blind XSS (Out-of-Band) | Запустите выполнение полезной нагрузки в панели администратора, которую вы не видите. |
git clone https://github.com/The-Cyber-Ledger/TCL-xss-labs.git
cd TCL-xss-labs
npm install
npm start
Откройте: http://localhost:3000
Запустите все 33 лаборатории мгновенно одной командой:
docker pull shadowpacket/tcl-xss-labs
docker run -p 3000:3000 shadowpacket/tcl-xss-labs
Откройте: http://localhost:3000
Вызвать alert() или выполнить реалистичную эксплуатацию (утечка данных, захват админки и т.д.).Этот проект представляет собой намеренно уязвимую обучающую среду. Используйте только в локальных или контролируемых средах. НЕ нацеливайтесь на системы без разрешения. Только для образовательных целей.
Большинство людей изучают XSS, решая лабораторные задачи. Этот проект поможет вам понять эксплуатацию как у реального атакующего.