Saugumo laboratorija Vue + webedge-db
Praktinės saugumo laboratorijos Vue 3 + webedge-db stekui — įskaitoma tik už tikrą eksploitą.
Dev-storyIššūkis
Saugumo mokymai dažnai užskaito laborą pagal aprašymą, tad gali „išspręsti" niekada neįvykdęs eksploito, o bendros akademijos nedengia Vue/webedge-db specifikos.
Ką darėme
Vietinė akademija Vue 3 + webedge-db + Tailwind stekui, kur laboras užskaitomas tik kai eksploitas realiai suveikia: XSS ir `javascript:` URL tikrai vykdomi naršyklėje (beacon pagauna alert/print ir `window.__hackbox.fire()`), SSRF eina per netikrą vidinį tinklą su tikru URL sprendikliu ir egress sąrašu, o IDOR, over-posting, JWT alg=none, prototype pollution ir kt. aptinkami automatiškai iš realaus užklausos rezultato; bandymai, sesijos ir užuominos rašomi į webedge-db, o Vitest dengia detektorius.
Rezultatas
Kiekviena OWASP Top 10 (2021) kategorija turi bent vieną laborą, patvirtintą tikru, atkartojamu eksploitu, o ne raktažodžiais ataskaitoje — taikinys yra paties steko Vue ir webedge-db silpnos vietos.
Dev-story straipsnis
Kaip buvo kuriamas projektas: Saugumo laboratorija Vue + webedge-db
Dažniausiai saugumo mokymai užskaito laborą pagal aprašymą, tad gali praeiti aprašydamas eksploitą, kurio niekada nepavykdei. O bendros akademijos moko prieš bendras programas, ne prieš tikslų steką, ant kurio statome. Hackbox yra saugumo akademija Vue 3 + webedge-db stekui, kur laboras skaičiuojamas tik kai eksploitas realiai suveikia.
Skyriai
05
Moduliai
05
Stackas
Vue 3 + webedge-db
Kodėl projektas atsirado
Saugumo mokymai dažnai užskaito laborą pagal aprašymą, tad gali „išspręsti" niekada neįvykdęs eksploito, o bendros akademijos nedengia Vue/webedge-db specifikos.
Dažniausiai saugumo mokymai užskaito laborą pagal aprašymą, tad gali praeiti aprašydamas eksploitą, kurio niekada nepavykdei. O bendros akademijos moko prieš bendras programas, ne prieš tikslų steką, ant kurio statome. Hackbox yra saugumo akademija Vue 3 + webedge-db stekui, kur laboras skaičiuojamas tik kai eksploitas realiai suveikia.
Ką sukūrėme
Vietinė akademija Vue 3 + webedge-db + Tailwind stekui, kur laboras užskaitomas tik kai eksploitas realiai suveikia: XSS ir `javascript:` URL tikrai vykdomi naršyklėje (beacon pagauna alert/print ir `window.__hackbox.fire()`), SSRF eina per netikrą vidinį tinklą su tikru URL sprendikliu ir egress sąrašu, o IDOR, over-posting, JWT alg=none, prototype pollution ir kt. aptinkami automatiškai iš realaus užklausos rezultato; bandymai, sesijos ir užuominos rašomi į webedge-db, o Vitest dengia detektorius.
Vietinė akademija pagal geriausius praktinius kursus: mokymosi keliai, temų žemėlapis, laborų aprašai, sesijos laikmatis, užuominos, užrašinė, markdown ataskaitos eksportas, mystery režimas, praktikos egzaminas ir Hall of Fame. Bet esmė yra solved-by-exploit: XSS ir javascript: URL tikrai vykdomi naršyklėje (beacon pagauna alert/print ir window.__hackbox.fire()), SSRF eina per netikrą vidinį tinklą su tikru URL sprendikliu ir egress sąrašu, pertikrinamu kiekviename žingsnyje, o IDOR, over-posting, JWT alg=none, prototype pollution ir kita aptinkama automatiškai iš tikro užklausos rezultato.
Pagrindiniai moduliai ir vartotojo kelias
Laboras pažymimas išspręstu pagal užfiksuotą faktą (bandymo rezultatas yra solved), ne pagal raktažodžius aprašyme — aprašymas lieka pasirenkama medžiaga ataskaitai.
Eksploitai tikri ir deterministiniai: JWT alg=none realiai dekoduoja ir tikrina, silpnas atstatymo tokenas yra tikras LCG, webhook parašai realiai HMAC tikrinami, o prototype pollution realiai užteršia Object.prototype per nesaugų deep-merge ir tuoj išvalo.
SSRF nesuklastotas eilučių tikrinimais: netikras vidinis tinklas turi tikrą URL sprendiklį, vidinius endpoint su paslaptimis, redirect sekimą ir egress sąrašą, pertikrinantį kiekvieną žingsnį.
Aprėptis sąžininga: kiekviena OWASP Top 10 (2021) kategorija turi bent vieną laborą su tikru eksploitu ir autodetekcija — o kur kategorijos negalima teisingai modeliuoti naršyklės smėlio dėžėje (pasenę komponentai / SCA), repo tai pasako tiesiai, o ne apsimeta.
Visa tai specifiška stekui: silpnos vietos yra Vue DOM, navigacija ir būsena (v-html, router redirect, dinaminiai komponentai, localStorage auth vartai) ir webedge-db viešos funkcijos, action, saugykla ir scheduler — tiksliai ten, kur mūsų programos galėtų suklysti.
Architektūra ir technologiniai sprendimai
Sukurta su Vue 3, webedge-db, Security labs.
Vue 3 (script setup) + webedge-db + Tailwind v4; schema laborų bandymams, sesijoms ir mokinio progresui; dalis laborų turi savus tikslinius appsus, kiti dalijasi rendereriu su ta pačia tikra autodetekcija; Vitest dengia saugumo pagalbininkus, tikrintuvus, katalogo vientisumą, eksploito autodetekcijos variklį, SSRF netikrą tinklą ir e2e tikslų prasukimus; diegta ant Cloudflare Pages su mūsų backendu.
Rezultatas ir pamokos
Kiekviena OWASP Top 10 (2021) kategorija turi bent vieną laborą, patvirtintą tikru, atkartojamu eksploitu, o ne raktažodžiais ataskaitoje — taikinys yra paties steko Vue ir webedge-db silpnos vietos.
Saugumo akademija, kur negali praeiti laboro, kurio realiai neįveikei, nutaikyta tiesiai į Vue + webedge-db steką, kurį leidžiame — tad praktika prieš mūsų pačių tikras silpnas vietas, ne prieš vadovėlį.
Toliau skaityti
Susijusios projektų istorijos
Šie projektai turi artimų technologinių arba produkto sprendimų, todėl padeda matyti, kaip tas pats principas veikia kitame kontekste.
Dev-storyCMS
Dinaminis CMS ant webedge-db — turinio tipai, medija, rolės ir vieša skaitymo API, maitinanti mūsų svetaines ir straipsnius.
Dev-storyKalendoriaus rezervacijų platforma
Rezervacijos ant Vue 3 — laisvi laikai, užsakymai, laiškai ir Meet vaizdo nuorodos.
Dev-storyFableVita
FableVita — DI fitneso treneris su lygomis, užduotimis ir nuo sukčiavimo apsaugota apdovanojimų ekonomika.
Turite panašią idėją?
Aptarti projektą