Strokovno podrocje

Varnost spletnih aplikacij

Onkraj OWASP Top 10. Logične napake, verige ranljivosti in napadi, ki jih skenerji ne najdejo.

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

  1. Razumevanje poslovnega procesa aplikacije
  2. Mapiranje vseh možnih stanj in prehodov
  3. Testiranje robnih primerov in nepričakovanih vnosov
  4. 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:

  1. Information disclosure - Stack trace razkrije interno strukturo
  2. IDOR - Dostop do email naslovov drugih uporabnikov
  3. Password reset flaw - Token poslan na URL namesto v body
  4. Reflected XSS - V funkciji iskanja
  5. 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

Potrebujete test spletne aplikacije?

Odkrijte ranljivosti, ki jih skenerji ne najdejo. Ročno testiranje z OSWE certificiranim strokovnjakom.