Перейти к содержимому
Каталог 206 лаб · 20 категорий

Lab Atlas

Карта уязвимостей и их исправлений. Каждая лаба — это рабочее приложение, в которое внедрена ошибка, типичная для production-кода. Сломай — почини — пойми.

API Security

3 лаб
API

API Rate Limit: Brute-force логина без ограничений

Отсутствие rate limiting на эндпоинте логина позволяет brute-force пароля администратора.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
API

API Mass Assignment: Повышение привилегий через PATCH

Уязвимость Mass Assignment возникает, когда приложение слепо доверяет входному JSON и биндит его напрямую в модель базы данных.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
API

API BOLA: Доступ к чужим заказам

Broken Object Level Authorization (BOLA): API возвращает заказы любого пользователя по ID без проверки владельца.

+60 XP ~40 мин
golangmediumPro
Exploit Fix

Authentication Bypass

23 лаб
Auth

JWT: Подбор слабого секретного ключа

Приложение подписывает JWT токеном HMAC-SHA256 со слабым ключом. Подбери секрет и подделай токен администратора.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
Auth

JWT Key Confusion (RS256 to HS256)

JWT RS256/HS256 key confusion: the server exposes the public key and doesn't enforce the signing algorithm, allowing token forgery via algorithm switch.

+90 XP ~75 мин
golanghardPro
Exploit Fix
Auth

JWT Authentication: Взлом слабой криптографии

В этой лаборатории сервер использует JWT для авторизации, но совершает сразу две критические ошибки: использует слабый секретный ключ и доверяет заголовку alg.

+90 XP ~75 мин
golanghardPro
Exploit Fix
Auth

Слабые Пароли (Нет Валидации Сложности)

Форма регистрации принимает любые пароли, включая однозначные. Аккаунт admin защищён паролем 'admin'.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
Auth

Timing Attack: Перечисление Пользователей

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

+90 XP ~75 мин
golanghardPro
Exploit Fix
Auth

Брутфорс Формы Входа (Нет Rate Limiting)

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

+30 XP ~20 мин
golangeasyPro
Exploit Fix
Auth

Небезопасный Сброс Пароля (IDOR)

Форма сброса пароля принимает user_id из клиента, позволяя атакующему сбросить пароль любого пользователя через IDOR.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
Auth

Предсказуемые Токены Сессии (MD5)

Сессионные токены генерируются через MD5(username), что позволяет предсказать токен администратора и захватить его сессию.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
Auth

Слабая Парольная Политика

Регистрация принимает любой пароль без проверки сложности. Пароль администратора — 'admin'.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
Auth

Timing-атака на форму входа

Обработчик входа раскрывает существование пользователей через разницу во времени ответа — bcrypt вызывается только для существующих аккаунтов.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
Auth

Брутфорс Формы Входа (Нет Rate Limiting) — Node.js

Форма входа Express-приложения не ограничивает количество попыток, позволяя подобрать пароль администратора перебором по словарю.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
Auth

JWT: Weak Secret

JWT подписан слабым секретом — подберите его через brute-force и подделайте токен администратора.

+30 XP ~20 мин
phpeasyPro
Exploit Fix
Auth

JWT: Key Confusion (RS256 to HS256)

Сервер подписывает JWT через RS256, но при валидации читает алгоритм из заголовка токена. Атакующий меняет alg на HS256, подписывает токен публичным RSA-ключом как HMAC-секретом и получает admin.

+90 XP ~75 мин
phphardPro
Exploit Fix
Auth

JWT: None Algorithm Attack

Сервер принимает JWT с алгоритмом none — подделайте токен без подписи и получите права администратора.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
Auth

Weak Password Policy

Регистрация принимает любой пароль без проверки сложности, что позволяет dictionary attack на аккаунты.

+30 XP ~20 мин
phpeasyPro
Exploit Fix
Auth

Timing-атака на форму входа (PHP)

Обработчик входа раскрывает существование пользователей через разницу во времени ответа — bcrypt вызывается только для существующих аккаунтов.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
Auth

Login Bruteforce

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

+30 XP ~20 мин
phpeasyPro
Exploit Fix
Auth

JWT: Weak Secret

JWT подписан слабым секретом — подберите его через brute-force и подделайте токен администратора.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
Auth

JWT: None Algorithm Attack

Сервер принимает JWT с alg:none и доверяет роли из claims — подделайте токен для получения прав администратора.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
Auth

JWT: Key Confusion (RS256 to HS256)

Сервер подписывает JWT через RS256, но не проверяет алгоритм при валидации. Атакующий скачивает публичный ключ и подписывает HS256-токен этим ключом как HMAC-секретом.

+90 XP ~75 мин
pythonhardPro
Exploit Fix
Auth

Слабая Парольная Политика

Регистрация принимает любой пароль без проверки сложности. Пароль администратора — 'admin'.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
Auth

Timing-атака на форму входа

Обработчик входа раскрывает существование пользователей через разницу во времени ответа — bcrypt вызывается только для существующих аккаунтов.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
Auth

Брутфорс Формы Входа (Нет Rate Limiting)

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

+30 XP ~20 мин
pythoneasyPro
Exploit Fix

Broken Access Control

13 лаб
access-control

Referer Bypass: обход контроля доступа через подмену заголовка

API-эндпоинт /api/admin/users проверяет заголовок Referer вместо роли пользователя. Атакующий может подделать заголовок и получить доступ к данным администратора.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
access-control

URL Case Bypass: обход проверки пути с помощью регистра

Middleware проверяет путь с учётом регистра (strings.HasPrefix). Замена /admin на /Admin позволяет обойти проверку роли администратора.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
access-control

Forced Browsing: доступ к скрытому эндпоинту экспорта

Административный эндпоинт /admin/export зарегистрирован без проверки роли — любой авторизованный пользователь может получить CSV-экспорт с конфиденциальными данными.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
access-control

Horizontal Privilege Escalation: изменение профиля другого пользователя

Обработчик обновления аватара принимает user_id из формы вместо сессии -- атакующий может изменить профиль любого пользователя, включая администратора.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
access-control

IDOR: Вертикальная эскалация привилегий в Express

Админ-эндпоинты Express проверяют наличие сессии, но не роль пользователя. Любой залогиненный demo-пользователь может открыть /admin/stats и забрать флаг.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
access-control

IDOR: предсказание UUID v1 по таймстампу

Заказы интернет-магазина идентифицируются UUID v1 (timestamp + MAC + clock_seq). Все заказы созданы внутри одного процесса, поэтому делят те же node/clock_seq биты — отличаются только по timestamp. Эндпоинт /order/:uuid не проверяет владельца, и атакующий, имея один свой UUID, угадывает UUID соседних заказов и получает чужие данные, включая CTF-флаг.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
access-control

IDOR: Доступ к чужому счёту в Express

Эндпоинт просмотра счёта в Express + better-sqlite3 не проверяет владельца ресурса. Получи доступ к счёту администратора и извлеки флаг.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
access-control

Access Control: обход URL-проверки через вариации пути

Middleware проверяет доступ к /admin по точному совпадению префикса. Обойдите проверку, изменив регистр символов.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
access-control

Access Control: Горизонтальная эскалация через API в Express

API-эндпоинт /api/users/:user_id/notes не проверяет владельца. Получите заметки администратора.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
access-control

Access Control: Forced Browsing — скрытая админ-панель

Административные страницы доступны без аутентификации. Перейдите напрямую и получите конфиденциальные данные.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
access-control

Access Control: Обход проверки через регистр URL

Middleware проверяет доступ к /admin по точному совпадению. Обойдите проверку, изменив регистр символов.

+90 XP ~75 мин
pythonhardPro
Exploit Fix
access-control

Access Control: Горизонтальная эскалация через API

API-эндпоинт /api/users/<id>/notes не проверяет владельца. Получите заметки администратора.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
access-control

Access Control: Forced Browsing — открытая админ-панель

Административные страницы доступны без аутентификации. Перейдите напрямую и получите конфиденциальные данные.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix

Business Logic Vulnerability

3 лаб
business-logic

Business Logic: Подмена цены в форме

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

+60 XP ~40 мин
golangmediumPro
Exploit Fix
business-logic

Business Logic: Отрицательное количество товаров

Корзина магазина принимает отрицательное количество товаров, позволяя получить отрицательную сумму заказа и увеличить баланс

+30 XP ~20 мин
golangeasyPro
Exploit Fix
business-logic

Business Logic: Стек купонов

Система купонов позволяет применять несколько купонов одновременно, суммируя скидки сверх допустимого

+60 XP ~40 мин
golangmediumPro
Exploit Fix

Cross-Site Request Forgery (CSRF)

14 лаб
CSRF

CSRF: SameSite=Lax Bypass через GET-запрос

Мутирующий эндпоинт смены email реализован через GET. SameSite=Lax не защищает от top-level навигации. Измени email администратора через CSRF.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
CSRF

CSRF: Обход проверки Referer-заголовка

Приложение использует проверку заголовка Referer вместо CSRF-токена. Обойди проверку и смени email администратора.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
CSRF

CSRF: Атака через JSON API без кастомных заголовков

JSON API эндпоинт не требует кастомных заголовков. Используй CSRF для смены пароля admin через API.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
CSRF

CSRF: Несанкционированное действие через поддельный запрос

Форма администратора не защищена CSRF-токеном. Заставь бота выполнить действие от имени admin.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
CSRF

JWT: подбор слабого секрета и подделка admin-токена

Сервер подписывает JWT слабым секретом из словаря. Получив один валидный токен, атакующий за секунды подбирает секрет по словарю офлайн, подписывает новый токен с role=admin и забирает флаг.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
CSRF

JWT: Key Confusion (RS256 to HS256) на jsonwebtoken

Express-приложение подписывает JWT через RS256 и публикует RSA публичный ключ через JWKS-эндпоинт. Функция верификации вызывает jwt.verify без явного whitelist алгоритмов — это позволяет атакующему подписать HS256-токен публичным ключом и получить admin-доступ.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
CSRF

JWT alg:none — обход аутентификации без подписи

Сервер принимает JWT с alg:none и доверяет роли из claims — подделайте токен для получения прав администратора в SecureShop.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
CSRF

CSRF: SameSite=Lax Bypass через GET-запрос

Критичное действие смены пароля выполняется через GET-запрос. SameSite=Lax не защищает от top-level навигации. Сменив пароль администратора через CSRF, залогинься под admin и забери флаг.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
CSRF

CSRF: JSON API без кастомного заголовка (PHP)

JSON-endpoint /api/profile принимает state-changing запрос без проверки CSRF-токена и кастомного заголовка X-Requested-With. Простой fetch с Content-Type:text/plain даёт CSRF.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
CSRF

CSRF: Активация распродажи без токена

Админ-эндпоинт активации распродажи не проверяет CSRF-токен. Заставь бота выполнить действие от имени admin.

+30 XP ~20 мин
phpeasyPro
Exploit Fix
CSRF

CSRF: SameSite=Lax Bypass через GET-запрос (Flask)

Endpoint смены email доступен через GET. SameSite=Lax не защищает от top-level GET navigation — измени email admin одной ссылкой.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
CSRF

CSRF: Обход проверки Referer (Flask)

Приложение проверяет Referer как защиту от CSRF, но проверка некорректна — атакующий может обойти её, указав домен жертвы как часть пути.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
CSRF

CSRF: JSON API без кастомного заголовка (Flask)

JSON API endpoint /api/profile не требует кастомного заголовка X-Requested-With. Смени пароль admin через CSRF-атаку на API.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
CSRF

CSRF: Несанкционированное действие через поддельный запрос (Flask)

Форма администратора не защищена CSRF-токеном. Заставь бота выполнить действие от имени admin.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix

Cross-Site Scripting (XSS)

19 лаб
XSS

Stored XSS в комментариях к товарам

Комментарии к товарам хранятся без санитаризации и отображаются как HTML. Укради сессию администратора.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
XSS

Reflected XSS в поиске магазина

Поисковый запрос отражается в HTML без экранирования. Выполни произвольный JS в контексте магазина.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
XSS

DOM XSS через URL-фрагмент (location.hash)

JavaScript на странице каталога читает location.hash и вставляет его в DOM через innerHTML. Укради сессию администратора.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
XSS

XSS при слабой CSP (unsafe-inline)

Reflected XSS эксплуатируется благодаря CSP с 'unsafe-inline'. Исправление требует nonce-based CSP.

+90 XP ~75 мин
golanghardPro
Exploit Fix
XSS

XSS через атрибут (javascript: URL)

XSS через javascript: URL-схему в атрибуте href. Go html/template экранирует HTML, но пропускает опасные URL-схемы.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
XSS

Stored XSS в комментариях к товарам (Node.js)

Комментарии к товарам рендерятся через nunjucks-фильтр |safe без санитайзинга. Укради сессию администратора через Stored XSS, чтобы получить доступ к флагу.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
XSS

Reflected XSS в поиске Node.js

Поисковый запрос выводится через |safe фильтр Nunjucks без экранирования. Выполни произвольный JS и укради cookie администратора.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
XSS

DOM XSS через location.hash и innerHTML (Express)

Клиентский JavaScript на странице каталога читает фрагмент URL (location.hash) и вставляет его через innerHTML без санитизации. Серверный код чист, защита и уязвимость живут полностью в браузерном JS.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
XSS

XSS + обход CSP через unsafe-inline (Node.js)

Поисковый запрос выводится через |safe без экранирования, а CSP содержит unsafe-inline — inline-скрипты не блокируются. Исправь экранирование и убери unsafe-inline из script-src.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
XSS

XSS через атрибут (javascript: URL) в Node.js

XSS через javascript: URL-схему в атрибуте href. Nunjucks экранирует HTML-сущности, но не блокирует опасные URL-схемы.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
XSS

Stored XSS в комментариях к товару

Комментарии к товарам выводятся без экранирования — Stored XSS позволяет украсть cookie администратора.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
XSS

Reflected XSS в поиске товаров

Поисковый запрос отображается на странице без экранирования, позволяя выполнить произвольный JavaScript в браузере жертвы.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
XSS

DOM XSS через URL-фрагмент

JavaScript читает location.hash и вставляет значение через innerHTML — DOM XSS без участия сервера.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
XSS

XSS в HTML-атрибуте (Attribute Context)

Пользовательский URL выводится в атрибуте href без валидации схемы — javascript: выполняется при клике.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
XSS

Stored XSS в комментариях к товарам

Комментарии к товарам выводятся через |safe без санитизации. Укради сессию администратора через Stored XSS.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
XSS

Reflected XSS в поиске магазина

Поисковый запрос выводится через |safe фильтр Jinja2 без экранирования. Выполни произвольный JS и укради cookie администратора.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
XSS

DOM XSS через location.hash и innerHTML

Клиентский JavaScript читает location.hash и вставляет через innerHTML без санитизации. Выполни произвольный JS и укради cookie администратора.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
XSS

XSS + обход CSP через unsafe-inline

Поисковый запрос выводится через |safe без экранирования, а CSP содержит unsafe-inline — inline-скрипты не блокируются. Исправь оба файла: убери |safe и настрой nonce-based CSP.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
XSS

XSS через атрибут (javascript: URL)

XSS через javascript: URL-схему в атрибуте href. Jinja2 экранирует HTML-сущности, но не блокирует опасные URL-схемы.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix

Information Disclosure

6 лаб
info-disclosure

Утечка данных через сообщения об ошибках

Подробные сообщения об ошибках раскрывают структуру БД

+30 XP ~20 мин
golangeasyPro
Exploit Fix
info-disclosure

Information Disclosure: Открытый debug-эндпоинт

Debug-эндпоинт раскрывает переменные окружения и список пользователей без аутентификации

+30 XP ~20 мин
golangeasyPro
Exploit Fix
info-disclosure

Information Disclosure: Утечка через файлы бэкапов

FileServer раздаёт .env и .bak файлы из корня проекта

+30 XP ~20 мин
golangeasyPro
Exploit Fix
info-disclosure

Information Disclosure: Утечка через Stack Trace

Ошибки сервера возвращают полные stack traces с путями файлов, SQL-схемой и переменными.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
info-disclosure

Information Disclosure: Flask Debug Mode

Flask запущен с debug=True. Через Werkzeug debugger можно получить переменные окружения.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
info-disclosure

Information Disclosure: Утечка через backup-файлы

Статическая директория содержит backup-файлы с конфиденциальными данными. Найдите SQL-дамп и извлеките флаг.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix

Insecure Deserialization

6 лаб
deserialization

Deserialization: POP-цепочка → RCE через file write

unserialize() без allowed_classes + классы с magic-методами (__destruct, __toString) позволяют собрать POP-цепочку, которая пишет PHP webshell в /static и даёт RCE.

+90 XP ~75 мин
phphardPro
Exploit Fix
deserialization

PHP Deserialization: Phar RCE через Phar::getMetadata()

Эндпоинт просмотра инвойсов пытается «прочитать структурированные метаданные» и вызывает Phar::loadPhar() + getMetadata() на пути из параметра без проверки расширения. Атакующий загружает PHAR-архив под видом .jpg с объектом InvoiceCache в metadata — getMetadata() делает unserialize(), триггерит __destruct() → system() → RCE.

+90 XP ~75 мин
phphardPro
Exploit Fix
deserialization

Deserialization: unserialize() без allowed_classes

Cookie user_prefs десериализуется через unserialize() — подделайте объект с магическим __wakeup() и получите админские права.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
deserialization

Insecure Deserialization: YAML Unsafe Load

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
deserialization

Insecure Deserialization: JSON Class Markers

+60 XP ~40 мин
pythonmediumPro
Exploit Fix

Insecure Direct Object Reference (IDOR)

12 лаб
IDOR

IDOR: Вертикальная эскалация привилегий

Админ-эндпоинты /admin/stats и /admin/users/delete проверяют аутентификацию, но не авторизацию. Любой залогиненный пользователь может получить флаг.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
IDOR

IDOR: Доступ к чужому счету

Эндпоинт просмотра счета не проверяет владельца. Получи флаг из счета другого пользователя.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
IDOR

SSRF: Обход проверки URL через HTTP-редирект в Node.js

Админ-форма импорта продуктового фида проверяет hostname URL и отвергает loopback и приватные сети, но fetch() автоматически следует HTTP-редиректам — внешний сервер атакующего перенаправляет на внутренний /admin/stats и утечка флага.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
IDOR

SSRF: эксфильтрация облачных credentials через метаданные

SSRF в /fetch-url без блокировки link-local адресов — IMDS отдаёт IAM credentials.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
IDOR

SSRF: Fetch Avatar в Express + better-sqlite3

Обработчик загрузки аватара в Express делает fetch по пользовательскому URL без валидации — доступ к внутреннему /admin/stats и утечка флага.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
IDOR

Vertical IDOR: Доступ к админ-панели без проверки роли

Admin-эндпоинты /admin/stats и /admin/users/delete защищены только аутентификацией, но не авторизацией. Обычный пользователь может выполнять действия администратора.

+90 XP ~75 мин
phphardPro
Exploit Fix
IDOR

IDOR: Predictable Order IDs

Заказы используют последовательные integer ID. Атакующий перебирает ID и просматривает чужие заказы.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
IDOR

IDOR: Просмотр чужих инвойсов

Эндпоинт /invoice?id=N возвращает инвойс без проверки владельца. Атакующий перебирает ID и читает чужие данные.

+30 XP ~20 мин
phpeasyPro
Exploit Fix
IDOR

IDOR: Вертикальная эскалация привилегий

Админ-эндпоинты проверяют аутентификацию, но не роль пользователя.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
IDOR

IDOR: Перебор заказов по последовательным ID

Заказы используют последовательные целочисленные ID без проверки владельца.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
IDOR

IDOR: Mass Assignment — эскалация через JSON

API-эндпоинт обновления профиля принимает все JSON-поля, включая role.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
IDOR

IDOR: Доступ к чужому счёту

Эндпоинт просмотра счёта не проверяет владельца. Получи данные чужого счёта.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix

Local/Remote File Inclusion (LFI/RFI)

3 лаб
file-inclusion

Remote File Inclusion через include() с allow_url_include

Параметр page передаётся в include() при включённом allow_url_include — атакующий загружает и выполняет произвольный PHP-код с удалённого сервера.

+90 XP ~75 мин
phphardPro
Exploit Fix
file-inclusion

LFI через PHP stream wrappers (php://filter)

Наивная фильтрация ../ не блокирует php://filter — атакующий читает исходники PHP-файлов в base64.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
file-inclusion

Local File Inclusion через include()

Параметр file передаётся напрямую в include() без валидации — атакующий читает произвольные файлы сервера.

+30 XP ~20 мин
phpeasyPro
Exploit Fix

OS Command Injection

12 лаб
CMD Injection

Blind Command Injection через сетевую диагностику

Обработчик сетевой диагностики передаёт пользовательский ввод в sh -c без фильтрации. Результат команды не отображается — используйте time-based технику для подтверждения инъекции.

+90 XP ~75 мин
golanghardPro
Exploit Fix
CMD Injection

Basic Command Injection: Сетевой пинг

Простая OS Command Injection через инструмент сетевой диагностики в админ-панели.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
CMD Injection

Argument Injection в архиваторе файлов

Обработчик архивации файлов использует exec.Command без shell, но не фильтрует аргументы, начинающиеся с '-'. Атакующий может внедрить произвольные флаги команды tar.

+90 XP ~75 мин
golanghardPro
Exploit Fix
CMD Injection

CSRF: SameSite=Lax обходится через GET (Express)

Эндпоинт смены email реализован через GET. SameSite=Lax не защищает top-level navigation — измени email админа через CSRF и забери флаг из /api/admin/email.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
CMD Injection

CSRF: JSON API без проверки происхождения запроса (Express)

JSON API /api/profile на Express принимает запросы без CSRF-токена и без проверки кастомного заголовка X-Requested-With. Смени пароль admin через cross-origin CSRF — затем войди и забери флаг.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
CMD Injection

CSRF: Несанкционированное действие через поддельный запрос (Express)

Форма администратора не защищена CSRF-токеном. Заставь бота выполнить действие от имени admin.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
CMD Injection

Code Injection через eval() в PHP-калькуляторе

Пользовательский ввод передаётся в eval(), позволяя выполнить произвольный PHP-код.

+90 XP ~75 мин
phphardPro
Exploit Fix
CMD Injection

Command Injection: обход blacklist-фильтра WAF

Админ-панель содержит функцию ping с blacklist-фильтром (пробел, ;, cat, flag). Фильтр обходится через ${IFS}, $(), backticks и регистр имени переменной окружения.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
CMD Injection

Command Injection: Базовая инъекция команд

Панель администратора содержит функцию ping, передающую ввод напрямую в shell без фильтрации.

+30 XP ~20 мин
phpeasyPro
Exploit Fix
CMD Injection

Command Injection: eval() Injection

Калькулятор на e-commerce сайте вычисляет выражения через eval(), позволяя любому авторизованному пользователю выполнить произвольный Python-код.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
CMD Injection

Command Injection: Слепая инъекция команд (Timing-based)

API сетевой диагностики выполняет команду shell, но не возвращает вывод. Уязвимость обнаруживается через задержку ответа (timing-based).

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
CMD Injection

Command Injection: Базовая инъекция команд

Панель администратора содержит функцию ping, передающую ввод напрямую в os.popen() без фильтрации.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix

Path Traversal

15 лаб
Path Traversal

Path Traversal (Чтение окружения)

Атака на инфраструктуру через /proc/self/environ.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
Path Traversal

Path Traversal через двойное URL-кодирование

Обработчик скачивания файлов применяет filepath.Clean ДО URL-декодирования. Двойное кодирование (%252e%252e%252f) обходит проверку и позволяет читать произвольные файлы.

+90 XP ~75 мин
golanghardPro
Exploit Fix
Path Traversal

Path Traversal (Иллюзия filepath.Clean)

Обход неумелого использования функции filepath.Clean.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
Path Traversal

Path Traversal (Базовый)

Классическая уязвимость Path Traversal через os.Open.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
Path Traversal

Path Traversal через абсолютный путь

Обработчик скачивания файлов проверяет только '..' в пути, но не блокирует абсолютные пути (/etc/passwd, /.env). Атакующий может читать любой файл на сервере.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
Path Traversal

Path Traversal: Обход naive blacklist-фильтра в Express

Эндпоинт скачивания файлов фильтрует путь через replace('../', '') без флага /g — фильтр срабатывает только один раз, и любая цепочка ../../../ обходит его.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
Path Traversal

Path Traversal: Базовый обход директорий в Express

Классическая Path Traversal в Express через fs.readFileSync(path.join(base, userInput)) без проверки выхода за пределы базовой директории.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
Path Traversal

Path Traversal: чтение произвольных файлов через абсолютный путь

Эндпоинт скачивания изображений склеивает имя файла с базовой директорией через path.resolve. Из-за поведения path.resolve абсолютный аргумент отбрасывает базовый путь — атакующий читает любой файл сервера.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
Path Traversal

Path Traversal через обход нормализации пути

Нормализация пути применяется ДО конкатенации с базовым каталогом — traversal-последовательности сохраняются после Clean, позволяя читать произвольные файлы.

+90 XP ~75 мин
phphardPro
Exploit Fix
Path Traversal

Path Traversal в загрузке файлов

Обход пути через параметр file в эндпоинте загрузки файлов (PHP).

+30 XP ~20 мин
phpeasyPro
Exploit Fix
Path Traversal

Path Traversal: абсолютные пути обходят blacklist

Сервер фильтрует '..' в запросах на скачивание, но не проверяет абсолютные пути — можно читать любой файл системы.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
Path Traversal

Path Traversal: /proc Leak

Обработчик скачивания файлов не блокирует /proc/self/environ — утечка секретов через переменные окружения.

+90 XP ~75 мин
pythonhardPro
Exploit Fix
Path Traversal

Path Traversal: Normpath Bypass

Обработчик использует os.path.normpath() до конкатенации, что не предотвращает выход за пределы директории.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
Path Traversal

Path Traversal: Базовый обход директорий

Классическая уязвимость Path Traversal через os.path.join() без проверки выхода за пределы базовой директории.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
Path Traversal

Path Traversal: Absolute Path

Обработчик скачивания файлов проверяет только '..' в пути, но не блокирует абсолютные пути. В Python os.path.join('/base', '/etc/passwd') возвращает '/etc/passwd' — второй аргумент абсолютный, base игнорируется.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix

Race Condition

7 лаб
Race

Promo Code Race

Состояние гонки при активации промокодов.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
Race

Race Condition: Double-spend баланса

Race condition: чтение и списание баланса без транзакции позволяет двойную трату при параллельных запросах.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
Race

IDOR: Перебор заказов по последовательным ID

Заказы используют последовательные целочисленные ID. Эндпоинт /order/{id} не проверяет владельца — можно перебрать чужие заказы и найти флаг.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
Race

IDOR: Mass Assignment — эскалация привилегий через профиль

Эндпоинт обновления профиля принимает JSON и записывает все поля, включая role. Отправь {"role":"admin"} и получи доступ к админ-панели с флагом.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
Race

Race Condition: Гонка при активации промокода в Express

Эндпоинт активации промокода в Express + better-sqlite3 содержит TOCTOU между проверкой счётчика и обновлением баланса. Получи бонус несколько раз параллельными запросами, накопи баланс и открой VIP-функцию с флагом.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
Race

Promo Code Race

Состояние гонки при активации промокодов (PHP).

+60 XP ~40 мин
phpmediumPro
Exploit Fix
Race

Promo Code Race

Состояние гонки при активации промокодов (Python).

+60 XP ~40 мин
pythonmediumPro
Exploit Fix

Remote Code Execution

6 лаб
RCE

Bypass Filters: Строгий WAF

Обход фильтрации пробелов и черного списка команд для RCE.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
RCE

Code Injection: eval() в Node.js калькуляторе

Веб-калькулятор вычисляет пользовательские выражения через eval(). Это даёт атакующему полный RCE: доступ к process.env, child_process и любым модулям Node.js.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
RCE

Command Injection: Обход Blacklist-фильтра в Node.js

Функция ping в админ-панели защищена blacklist-фильтром, блокирующим пробелы и ключевые слова cat/flag/tail/less/more. Фильтр обходится через ;id, ;env и другие конструкции без пробелов.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
RCE

Blind Command Injection: time-based инъекция без вывода в Node.js

API сетевой диагностики Express выполняет ping через child_process.exec, но вывод не возвращается клиенту. Уязвимость подтверждается через задержку ответа (timing-based blind injection).

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
RCE

Command Injection: Базовая инъекция команд в Node.js

Панель администратора содержит инструмент диагностики сети, передающий ввод напрямую в child_process.exec() без фильтрации.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
RCE

Command Injection: Обход Blacklist WAF

Функция ping защищена blacklist-фильтром, блокирующим пробелы и ключевые слова. Фильтр обходится через ${IFS}, brace expansion и другие техники.

+90 XP ~75 мин
pythonhardPro
Exploit Fix

SQL Injection

21 лаб
SQLi

Union-Based SQL Injection

Получение пароля администратора с использованием UNION SELECT

+60 XP ~40 мин
golangmedium
Exploit Fix
SQLi

Time-Based Blind SQL Injection

Эксплуатация слепой SQL-инъекции, основанной на задержках времени ответа (Time-Based) в SQLite.

+90 XP ~75 мин
golanghard
Exploit Fix
SQLi

Blind Boolean SQL Injection

Слепая Boolean-based SQL-инъекция через Cookie купона

+90 XP ~75 мин
golanghard
Exploit Fix
SQLi

SQL Injection (Auth Bypass)

Обход авторизации с использованием SQL Injection

+30 XP ~20 мин
golangeasy
Exploit Fix
SQLi

SQL Injection: WAF Bypass

Обход WAF с чёрным списком SQL-ключевых слов для эксплуатации SQL-инъекции в форме логина Express + better-sqlite3.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
SQLi

SQL Injection: UNION SELECT через поиск каталога

Извлечение данных из таблицы users через UNION-based SQL injection в поиске каталога Express-приложения.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
SQLi

SQL Injection: Second-Order через сохранённый username профиля

Second-order SQL injection: вредоносный username безопасно сохраняется при регистрации, но выполняется как часть SQL позже, когда обработчик профиля собирает запрос истории заказов конкатенацией.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
SQLi

SQL Injection: Обход аутентификации в Express

Обход аутентификации через классическую SQL-инъекцию в форме логина Express + better-sqlite3.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
SQLi

SQL Injection — обход WAF blacklist

WAF с blacklist-фильтром блокирует SQL-ключевые слова, но обходится через mixed case.

+90 XP ~75 мин
phphardPro
Exploit Fix
SQLi

UNION SQL Injection в поиске каталога

UNION-based SQL-инъекция через поиск товаров позволяет извлечь данные из таблицы пользователей.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
SQLi

Second-Order SQL Injection через профиль пользователя

Имя из БД подставляется в SQL через конкатенацию — Second-Order SQLi.

+90 XP ~75 мин
phphardPro
Exploit Fix
SQLi

Boolean-based Blind SQL Injection через cookie купона

Значение купона из cookie подставляется в SQL-запрос без параметризации, позволяя извлечь данные через boolean-based blind инъекцию.

+90 XP ~75 мин
phphardPro
Exploit Fix
SQLi

SQL Injection в форме входа

Обход аутентификации через SQL-инъекцию в форме логина.

+30 XP ~20 мин
phpeasyPro
Exploit Fix
SQLi

SQL Injection: WAF Bypass

Обход WAF с чёрным списком SQL-ключевых слов для эксплуатации SQL-инъекции в форме логина.

+90 XP ~75 мин
pythonhardPro
Exploit Fix
SQLi

SQL Injection: UNION SELECT

Извлечение данных из БД через UNION SELECT в поиске каталога Flask-приложения.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
SQLi

SQL Injection: Second-Order

SQL-инъекция второго порядка: payload сохраняется при регистрации и срабатывает при просмотре профиля.

+90 XP ~75 мин
pythonhardPro
Exploit Fix
SQLi

SQL Injection: Time-based Blind

Извлечение данных через Time-based Blind SQLi в форме восстановления пароля Flask-приложения.

+90 XP ~75 мин
pythonhardPro
Exploit Fix
SQLi

SQL Injection: Boolean-based Blind

Извлечение данных через Boolean-based Blind SQLi в эндпоинте проверки купонов.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
SQLi

SQL Injection: Auth Bypass

Обход авторизации через SQL-инъекцию в форме логина Flask-приложения.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix

Server-Side Request Forgery

14 лаб
SSRF

Advanced SSTI: Вызов методов и доступ к контексту

Эксплуатация SSTI через вызов методов объектов в контексте шаблона.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
SSRF

SSRF Redirect: Обход валидации через HTTP-редирект

SSRF-уязвимость: валидация URL обходится через HTTP-редирект на внутренний адрес.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
SSRF

SSRF Cloud Metadata: Доступ к метаданным облака

SSRF-уязвимость: неполная фильтрация IP позволяет обратиться к link-local адресу облачных метаданных (169.254.169.254).

+60 XP ~40 мин
golangmediumPro
Exploit Fix
SSRF

Bypass SSRF: Обход фильтров хоста

SSRF с обходом слабого фильтра хоста в URL и эксплуатация через альтернативные IP-адреса.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
SSRF

Basic SSRF: Доступ к админке

Простая SSRF-уязвимость, позволяющая получить доступ к внутренним ресурсам сервера.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
SSRF

SSTI: Pug Template Engine в Express

Профиль SecureShop рендерит пользовательское приветствие через pug.render() — SSTI в JavaScript-окружении с чтением секретов и RCE.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
SSRF

SSTI: внедрение JavaScript-кода в EJS-шаблон

Server-Side Template Injection в Express + EJS: пользовательский ввод используется как сам EJS-шаблон, что позволяет выполнить произвольный JavaScript на сервере и прочитать переменные окружения.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
SSRF

SSTI: User Greeting

Пользовательское приветствие в SecureShop рендерится через nunjucks.renderString() — SSTI позволяет выполнять JS и читать переменные окружения.

+30 XP ~20 мин
nodejseasyPro
Exploit Fix
SSRF

SSRF через обход проверки IP с помощью HTTP-редиректа

Приложение проверяет IP адрес при первом запросе, но cURL автоматически следует редиректам на внутренние адреса — атакующий обходит проверку через промежуточный сервер.

+90 XP ~75 мин
phphardPro
Exploit Fix
SSRF

SSRF к облачным метаданным через обход проверки IP

Приложение блокирует только loopback-адреса, но не link-local 169.254.169.254 — атакующий читает облачные метаданные AWS.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
SSRF

SSRF через file_get_contents() в загрузке аватара

Приложение загружает аватар по URL без проверки — атакующий может обратиться к внутренним сервисам.

+30 XP ~20 мин
phpeasyPro
Exploit Fix
SSRF

SSRF: Redirect Bypass

Обработчик загрузки аватара проверяет IP начального URL, но requests.get() автоматически следует редиректам — внешний сервер перенаправляет на внутренний адрес.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
SSRF

SSRF: Cloud Metadata Bypass

SSRF-защита проверяет is_loopback но не is_link_local — доступ к cloud metadata 169.254.169.254.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
SSRF

SSRF: Fetch Avatar

Обработчик загрузки аватара делает HTTP-запрос по пользовательскому URL без валидации — доступ к внутренним сервисам.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix

Server-Side Template Injection (SSTI)

13 лаб
SSTI

SSTI Email: Инъекция шаблона в email-сообщение

SSTI-уязвимость: пользовательский ввод передаётся в template.Parse(), позволяя читать серверные данные.

+90 XP ~75 мин
golanghardPro
Exploit Fix
SSTI

Basic SSTI: Кастомное приветствие

Утечка конфиденциальных данных из контекста страницы через небезопасную обработку шаблонов.

+30 XP ~20 мин
golangeasyPro
Exploit Fix
SSTI

ReDoS: catastrophic backtracking в URL-валидаторе профиля

Express SecureShop валидирует адрес персонального сайта пользователя через регулярное выражение с вложенными квантификаторами в последней метке хоста. Тщательно подобранная строка вызывает catastrophic backtracking движка V8: event loop блокируется на секунды, инцидент фиксируется в журнале и admin-эндпоинт выдаёт флаг.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
SSTI

ReDoS: catastrophic backtracking в проверке email профиля

Сервис ProfileGuard валидирует email пользователя на стороне сервера через регулярное выражение с вложенными квантификаторами. Тщательно подобранная входная строка вызывает экспоненциальный backtracking движка V8, поток событий блокируется на десятки секунд, инцидент фиксируется в логе администратора — и вместе с ним выдаётся флаг.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
SSTI

Prototype Pollution → RCE через гаджет в EJS

Админ-панель SecureShop рекурсивно сливает JSON-патч предпочтений с in-memory объектом, что позволяет загрязнить Object.prototype. Превью дашборда через EJS читает опции компиляции через цепочку прототипов — это превращает prototype pollution в RCE-гаджет и даёт чтение LAB_FLAG.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
SSTI

Prototype Pollution: загрязнение Object.prototype приводит к DoS публичных эндпоинтов

Express-эндпоинт POST /profile/settings делает рекурсивный merge JSON-объекта в per-user настройки без фильтрации __proto__. Атакующий загрязняет Object.prototype, после чего hot-path обработчик /catalog падает с 500 на каждом запросе — Denial of Service. Endpoint /api/incident-response регистрирует инцидент и выдаёт флаг.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
SSTI

Prototype Pollution: загрязнение Object.prototype через recursive merge

Эндпоинт обновления пользовательских настроек в Express делает recursive merge тела запроса без фильтрации ключа __proto__. Загрязни Object.prototype.isAdmin и получи доступ к /admin/flag.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
SSTI

SSTI: Twig createTemplate() Injection

Пользовательский ввод передаётся в Twig createTemplate(), что позволяет выполнить произвольный код на сервере.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
SSTI

SSTI: Server-Side Template Injection via eval()

Greeting template executed via eval() allows arbitrary PHP code injection.

+30 XP ~20 мин
phpeasyPro
Exploit Fix
SSTI

SSTI: Report Template RCE

Пользовательский шаблон отчёта рендерится через render_template_string() — SSTI позволяет выполнить произвольный код через цепочку __subclasses__.

+90 XP ~75 мин
pythonhardPro
Exploit Fix
SSTI

SSTI: Format String Injection

Форма восстановления пароля использует str.format() с пользовательским шаблоном — атакующий может читать атрибуты объектов через {username.__class__.__init__.__globals__}.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
SSTI

Blind SSTI: Notification Templates

Админ-шаблон email-уведомлений рендерится через render_template_string() — слепая SSTI через time-based payload.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
SSTI

SSTI: User Greeting

Пользовательское приветствие рендерится через render_template_string() — SSTI позволяет читать секреты и выполнять код.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix

Type Juggling / Type Confusion

3 лаб
type-juggling

Type Juggling: обход strcmp() через массив

Эндпоинт /promo сравнивает секретный токен через strcmp() с `== 0`. Отправка promo_token[]=x превращает strcmp() в NULL, а NULL == 0 — true: проверка обходится.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
type-juggling

Type Juggling: JSON-аутентификация с loose comparison

JSON-API логина сравнивает пароль с хешем через loose == . В БД хранится хеш-строка вида 0e830... (magic hash), которая коэрсится в число 0.0. Отправив {"password": 0}, атакующий заходит как admin.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
type-juggling

Type Juggling: Magic Hash Collision

API-логин через токен использует loose comparison (==) между md5-хэшами. Magic hash вида 0e[0-9]+ интерпретируется как научная нотация (0.0), что приводит к коллизии хэшей и обходу аутентификации.

+30 XP ~20 мин
phpeasyPro
Exploit Fix

Unrestricted File Upload

11 лаб
file-upload

File Upload Bypass через двойное расширение

Обработчик загрузки использует filepath.Ext() для проверки расширения, но эта функция возвращает только последнее расширение. Файл test.html.jpg проходит проверку, а Go http.FileServer может определить Content-Type по первому расширению.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
file-upload

File Upload Bypass через подмену Content-Type

Обработчик загрузки файлов проверяет только расширение (.jpg, .png, .gif), но не реальное содержимое файла. HTML-файл с расширением .jpg будет принят и отдан браузеру.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
file-upload

File Upload: Обход расширений и Path Traversal

Сервер принимает файлы с расширением .jpg, но слепо доверяет имени файла из Content-Disposition. Используйте Path Traversal, чтобы подбросить свой токен конфигурации и получить флаг.

+90 XP ~75 мин
golanghardPro
Exploit Fix
file-upload

File Upload: обход проверки через подделку Content-Type

Загрузчик изображений товара доверяет MIME-типу, который пришёл в заголовке Content-Type части multipart-формы. Атакующий подделывает заголовок и загружает HTML с активным контентом, выдавая его за PNG.

+90 XP ~75 мин
nodejshardPro
Exploit Fix
file-upload

File Upload: Path Traversal в имени файла (Express + busboy)

Загрузка аватара без санитизации имени файла позволяет перезаписать серверные шаблоны через path traversal в filename.

+60 XP ~40 мин
nodejsmediumPro
Exploit Fix
file-upload

.htaccess Upload — RCE через перезапись конфигурации Apache

Загрузка .htaccess позволяет выполнять PHP-код внутри файлов с произвольным расширением.

+90 XP ~75 мин
phphardPro
Exploit Fix
file-upload

File Upload: Content-Type Bypass

Загрузка файлов проверяет только расширение, но не содержимое. Атакующий может загрузить HTML/JS в файле с расширением .jpg.

+60 XP ~40 мин
phpmediumPro
Exploit Fix
file-upload

File Upload: Path Traversal через имя файла

Загрузка аватара использует оригинальное имя файла без санитизации. Подмени filename в multipart-запросе для перезаписи шаблона и получения RCE.

+30 XP ~20 мин
phpeasyPro
Exploit Fix
file-upload

File Upload: Webshell через загрузку в templates/

Загрузка документов сохраняет файлы в директорию templates/ без проверки содержимого. Просмотр файлов через render_template() позволяет выполнить Jinja2 SSTI.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix
file-upload

File Upload: обход проверки расширения через Content-Type

Загрузчик изображений проверяет расширение файла, но не его содержимое. HTML-файл, переименованный в .jpg, загружается и исполняется в браузере.

+30 XP ~20 мин
pythoneasyPro
Exploit Fix
file-upload

File Upload: Path Traversal в имени файла

Загрузка аватара без санитизации имени файла позволяет перезаписать серверные шаблоны через path traversal в filename.

+60 XP ~40 мин
pythonmediumPro
Exploit Fix

WebSocket Security

2 лаб
websocket-security

WebSocket Message Injection (XSS via innerHTML)

WebSocket chat broadcasts unsanitized messages. Client renders via innerHTML, enabling XSS.

+60 XP ~40 мин
golangmediumPro
Exploit Fix
websocket-security

WebSocket Security: Угон сокета (CSWSH)

Сервер открывает WebSocket-соединение для отправки приватных уведомлений, но забывает проверять Origin. Воспользуйтесь ботом администратора, чтобы заставить его открыть вашу вредоносную страницу и угнать флаг через сокет.

+90 XP ~75 мин
golanghardPro
Exploit Fix
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru