Avtentikacija je novi perimeter. In je pokvarjen. OWASP Top 10 je dober začetek, ampak pravi napadi gredo onkraj tega. Logične napake, napačne implementacije avtentikacije in ranljivostne verige, ki spremenijo "nizko resnost" v popoln prevzem računa.
Zakaj skenerji niso dovolj
Avtomatizirani skenerji najdejo približno 20% ranljivosti, ki jih najde izkušen tester. Zakaj?
- Logične napake - Skener ne razume poslovne logike vaše aplikacije
- Verige ranljivosti - Skener testira posamezne ranljivosti, ne kombinacij
- Kontekst - Skener ne ve, kaj je "normalno" za vašo aplikacijo
- Avtentikacija - Večina skenerjev slabo testira avtentikacijske tokove
Avtentikacijske in avtorizacijske ranljivosti
Avtentikacija in avtorizacija sta najpogostejša vektorja za popoln prevzem aplikacije.
Broken Authentication
- Credential stuffing - Uporaba ukradenih poverilnic iz drugih vdorov
- Password spraying - Pogosta gesla proti velikemu številu uporabnikov
- Session fixation - Napadalec nastavi session ID pred prijavo žrtve
- Insecure "Remember Me" - Predvidljivi ali trajni tokeni
- Password reset flaws - Predvidljivi tokeni, pomanjkanje časovne omejitve, token leakage
MFA Bypass tehnike
MFA ni srebrna krogla. Pogosto ga je mogoče obiti:
- Response manipulation - Spreminjanje odgovora strežnika iz "false" v "true"
- Direct request - Preskočitev MFA koraka z direktnim dostopom do zaščitene strani
- Token reuse - Uporaba že uporabljenega OTP tokena
- Brute force OTP - Pomanjkanje rate limitinga na OTP vnos
- OAuth flow abuse - Napačna implementacija OAuth omogoča obhod MFA
Broken Access Control (IDOR)
Najpogostejša kritična ranljivost. Aplikacija ne preverja, ali ima uporabnik pravico dostopa do zahtevanega resursa.
- Horizontal privilege escalation - Dostop do podatkov drugih uporabnikov (spremeni ID v URL)
- Vertical privilege escalation - Dostop do administratorskih funkcij
- Parameter pollution - Dodajanje dodatnih parametrov za obhod kontrol
- HTTP method tampering - GET namesto POST za obhod CSRF zaščite
Injection ranljivosti
SQL Injection
Klasična, a še vedno pogosta ranljivost. Modernejše tehnike:
- Second-order SQLi - Payload shranjen v bazi, izveden kasneje
- Blind SQLi - Ni direktnega izpisa, a informacije preko časovnih razlik ali boolean odgovorov
- Out-of-band SQLi - Eksfiltracija podatkov preko DNS ali HTTP zahtev
- Filter bypass - Obhod WAF z encoding, komentarji, alternativno sintakso
Server-Side Request Forgery (SSRF)
Napadalec prisili strežnik, da izvede HTTP zahtevo na poljubno lokacijo. Kritično v cloud okoljih:
- Cloud metadata - Dostop do http://169.254.169.254 za AWS/Azure/GCP poverilnice
- Internal services - Dostop do internih storitev, ki niso izpostavljene
- Protocol smuggling - Uporaba gopher://, dict:// za napade na interne servise
- DNS rebinding - Obhod IP-based filtrov
Server-Side Template Injection (SSTI)
Kadar uporabniški vnos konča v predlogi (Jinja2, Twig, Freemarker), lahko napadalec izvede kodo:
- Detection -
{{7*7}}vrne 49? Ranljivo. - Exploitation - Branje datotek, izvajanje ukazov, RCE
- Sandbox escape - Obhod omejitev predloge
Cross-Site Scripting (XSS)
XSS ni več "samo session stealing". Moderne tehnike omogočajo popoln prevzem računa.
Vrste XSS
- Reflected XSS - Payload v URL, izveden takoj
- Stored XSS - Payload shranjen na strežniku, izveden za vse uporabnike
- DOM-based XSS - Izveden v brskalniku brez strežnika
- Blind XSS - Payload izveden v admin panelu, napadalec ne vidi izpisa
Napredne XSS tehnike
- CSP bypass - Uporaba dovoljenega domaina za hosting payloada (JSONP, Angular)
- Dangling markup injection - Kraja podatkov brez JavaScript
- XSS to RCE - V Electron aplikacijah, admin panelih s command execution
- Polyglot payloads - En payload deluje v večih kontekstih
Obhod zaščit
- Filter evasion - Encoding, case manipulation, null bytes
- WAF bypass - Fragmentacija, alternativni event handlers
- Browser quirks - Posebnosti posameznih brskalnikov
Poslovne logične ranljivosti
Najvrednejše ranljivosti, ki jih skenerji ne morejo najti.
Primeri
- Race conditions - Večkratna uporaba enkratne kode (kuponi, dvigi)
- Price manipulation - Spreminjanje cen v zahtevah
- Workflow bypass - Preskakovanje korakov v procesu (plačilo)
- Mass assignment - Dodajanje dodatnih polj (isAdmin=true)
- Negative quantities - Naročilo -1 izdelka za kredit
Kako jih najdem
- Razumevanje poslovnega procesa aplikacije
- Mapiranje vseh možnih stanj in prehodov
- Testiranje robnih primerov in nepričakovanih vnosov
- Testiranje sočasnih zahtev (race conditions)
Obhod WAF (Web Application Firewall)
WAF ni varnostna rešitev - je ovira, ki jo napadalci zaobidejo.
Tehnike obhoda
- Encoding - URL encoding, double encoding, Unicode normalization
- Case manipulation - SeLeCt namesto SELECT
- Comments - SEL/**/ECT v SQL
- HTTP Parameter Pollution - Večkratni parametri z istim imenom
- Chunked transfer encoding - Fragmentacija payloada
- Content-Type confusion - Pošiljanje JSON kot form-data
JavaScript Deobfuskacija in analiza
Moderni frontend-i skrivajo logiko v obfuscirani JavaScript kodi.
Kaj iščem
- API endpointi - Skriti ali nedokumentirani API-ji
- Hardcoded credentials - API ključi, tokeni
- Client-side validation - Logika, ki bi morala biti na strežniku
- Debug code - Console.log z občutljivimi podatki
- Source maps - Izvirna koda, če so dostopni
Verige ranljivosti - realni primer
Posamezne ranljivosti nizke resnosti, združene v kritičen napad:
- Information disclosure - Stack trace razkrije interno strukturo
- IDOR - Dostop do email naslovov drugih uporabnikov
- Password reset flaw - Token poslan na URL namesto v body
- Reflected XSS - V funkciji iskanja
- Kombinacija - XSS ukrade reset token iz Referer headerja → popoln prevzem računa
Rezultat: 4 ranljivosti "srednje resnosti" = popoln prevzem kateregakoli računa.
Moj pristop k testiranju spletnih aplikacij
- Razumevanje aplikacije - Poslovni procesi, uporabniške vloge, občutljivi podatki
- Mapiranje - Vse funkcionalnosti, API endpointi, uporabniški tokovi
- Ročno testiranje - Burp Suite, prilagojena orodja, kreativno razmišljanje
- Verifikacija - Vsaka ranljivost potrjena z delujočim PoC
- Remediacija - Konkretna priporočila za razvijalce