Все проекты

Security-лаба для Vue + webedge-db

Практические лабы по безопасности для Vue 3 + webedge-db — зачёт за реальный эксплойт.

Vue 3webedge-dbSecurity labs
Скриншот WebEdge HackboxDev-story
01

Задача

Обучение по безопасности обычно засчитывает лабу по writeup, так что можно «решить» её, ни разу не выполнив эксплойт, — а общие академии не покрывают специфику Vue/webedge-db.

02

Что делали

Локальная академия под стек Vue 3 + webedge-db + Tailwind, где лаба засчитывается только когда эксплойт реально срабатывает: XSS и `javascript:` URL по-настоящему исполняются в браузере (beacon ловит alert/print и `window.__hackbox.fire()`), SSRF идёт через мок внутренней сети с настоящим резолвером URL и egress-allowlist, а IDOR, over-posting, JWT alg=none, prototype pollution и прочее автодетектятся по реальному результату запроса; попытки, сессии и подсказки пишутся в webedge-db, а Vitest покрывает детекторы.

03

Результат

Каждая категория OWASP Top 10 (2021) закрыта хотя бы одной лабой, подтверждаемой реальным воспроизводимым эксплойтом, а не совпадением ключевых слов в отчёте — цель это Vue- и webedge-db-слабости самого стека.

Dev-story статья

Security-лаба для Vue + webedge-db: как создавался проект

Чаще всего обучение безопасности засчитывает лабу по writeup, так что можно пройти, описав эксплойт, который ни разу не выполнил. А общие академии учат против общих приложений, а не против точного стека, на котором мы строим. Hackbox это академия безопасности под стек Vue 3 + webedge-db, где лаба считается только когда эксплойт реально срабатывает.

Разделы

05

Модули

05

Стек

Vue 3 + webedge-db

01

Почему появился проект

Обучение по безопасности обычно засчитывает лабу по writeup, так что можно «решить» её, ни разу не выполнив эксплойт, — а общие академии не покрывают специфику Vue/webedge-db.

Чаще всего обучение безопасности засчитывает лабу по writeup, так что можно пройти, описав эксплойт, который ни разу не выполнил. А общие академии учат против общих приложений, а не против точного стека, на котором мы строим. Hackbox это академия безопасности под стек Vue 3 + webedge-db, где лаба считается только когда эксплойт реально срабатывает.

02

Что было создано

Локальная академия под стек Vue 3 + webedge-db + Tailwind, где лаба засчитывается только когда эксплойт реально срабатывает: XSS и `javascript:` URL по-настоящему исполняются в браузере (beacon ловит alert/print и `window.__hackbox.fire()`), SSRF идёт через мок внутренней сети с настоящим резолвером URL и egress-allowlist, а IDOR, over-posting, JWT alg=none, prototype pollution и прочее автодетектятся по реальному результату запроса; попытки, сессии и подсказки пишутся в webedge-db, а Vitest покрывает детекторы.

Локальная академия по образцу лучших практических курсов: пути обучения, карта тем, брифы лаб, таймер сессии, подсказки, блокнот, экспорт отчёта в markdown, mystery-режим, практический экзамен и Hall of Fame. Но суть это solved-by-exploit: XSS и javascript: URL по-настоящему исполняются в браузере (beacon ловит alert/print и window.__hackbox.fire()), SSRF идёт через мок внутренней сети с настоящим резолвером URL и egress-allowlist, перепроверяемым на каждом хопе, а IDOR, over-posting, JWT alg=none, prototype pollution и прочее автодетектится из реального результата запроса.

03

Основные модули и путь пользователя

M01

Лаба помечается решённой по зафиксированному факту (результат попытки равен solved), а не по совпадению ключевых слов в writeup — writeup остаётся опциональным материалом для отчёта.

M02

Эксплойты настоящие и детерминированные: JWT alg=none реально декодирует и проверяет, слабый reset-токен это настоящий LCG, подписи webhook реально HMAC-проверяются, а prototype pollution реально загрязняет Object.prototype через небезопасный deep-merge и тут же чистит.

M03

SSRF не подделан строковыми проверками: мок внутренней сети имеет настоящий резолвер URL, внутренние эндпоинты с секретами, следование редиректам и egress-allowlist, перепроверяющий каждый хоп.

M04

Покрытие честное: каждая категория OWASP Top 10 (2021) закрыта хотя бы одной лабой с реальным эксплойтом и автодетектом — а где категорию нельзя достоверно смоделировать в песочнице браузера (устаревшие компоненты / SCA), репо говорит это прямо, а не притворяется.

M05

Всё это специфично стеку: слабые места это Vue DOM, навигация и состояние (v-html, редиректы роутера, динамические компоненты, localStorage auth-гейты) и webedge-db публичные функции, actions, storage и scheduler — ровно там, где наши приложения могли бы ошибиться.

04

Архитектура и технологические решения

Сделано на Vue 3, webedge-db, Security labs.

Vue 3 (script setup) + webedge-db + Tailwind v4; схема для попыток лаб, сессий и прогресса ученика; часть лаб имеет свои таргет-приложения, остальные делят рендерер с тем же реальным автодетектом; Vitest покрывает security-хелперы, чекеры, целостность каталога, движок автодетекта эксплойта, мок-сеть SSRF и e2e-прогоны таргетов; развёрнуто на Cloudflare Pages с нашим бэкендом.

05

Результат и выводы

Каждая категория OWASP Top 10 (2021) закрыта хотя бы одной лабой, подтверждаемой реальным воспроизводимым эксплойтом, а не совпадением ключевых слов в отчёте — цель это Vue- и webedge-db-слабости самого стека.

Академия безопасности, где нельзя пройти лабу, которую реально не взломал, нацеленная прямо на стек Vue + webedge-db, который мы выпускаем — так что практика против наших собственных реальных слабых мест, а не против учебника.

Читать дальше

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

Есть похожая идея?

Обсудить проект