FixVibe
Covered by FixVibehigh

Zbulimi dhe parandalimi i dobësive të skriptimit ndër-site (XSS)

Skriptimi ndër-site (XSS) ndodh kur një aplikacion përfshin të dhëna të pabesueshme në një faqe ueb pa vërtetimin ose kodimin e duhur. Kjo i lejon sulmuesit të ekzekutojnë skriptet me qëllim të keq në shfletuesin e viktimës, duke çuar në rrëmbim të sesioneve, veprime të paautorizuara dhe ekspozim të të dhënave të ndjeshme.

CWE-79

Ndikimi

Një sulmues që shfrytëzon me sukses një dobësi të Skriptimit Ndër-Sit (XSS) mund të maskohet si përdorues viktimë, të kryejë çdo veprim që përdoruesi është i autorizuar të kryejë dhe të hyjë në çdo të dhënë të përdoruesit [S1]. Kjo përfshin vjedhjen e skedarëve të sesioneve për të rrëmbyer llogaritë, kapjen e kredencialeve të identifikimit përmes formularëve të rremë ose kryerjen e prishjes virtuale [S1][S2]. Nëse viktima ka privilegje administrative, sulmuesi mund të fitojë kontroll të plotë mbi aplikacionin dhe të dhënat e tij [S1].

Shkaku rrënjësor

XSS ndodh kur një aplikacion merr të dhëna të kontrollueshme nga përdoruesi dhe e përfshin atë në një faqe interneti pa neutralizimin ose kodimin e duhur [S2]. Kjo lejon që hyrja të interpretohet si përmbajtje aktive (JavaScript) nga shfletuesi i viktimës, duke anashkaluar politikën e origjinës së njëjtë të krijuar për të izoluar faqet e internetit nga njëri-tjetri [S1][S2].

Llojet e cenueshmërisë

  • XSS i pasqyruar: Skriptet me qëllim të keq reflektohen nga një aplikacion ueb në shfletuesin e viktimës, zakonisht nëpërmjet një parametri URL [S1].
  • XSS i ruajtur: Skripti ruhet përgjithmonë në server (p.sh., në një bazë të dhënash ose seksion komentesh) dhe u shërbehet përdoruesve më vonë [S1][S2].
  • XSS me bazë DOM: Dobësia ekziston tërësisht në kodin e klientit që përpunon të dhënat nga një burim i pabesueshëm në një mënyrë të pasigurt, si p.sh. shkrimi në innerHTML [S1].

Rregullime konkrete

  • Kodoni të dhënat në dalje: Konvertoni të dhënat e kontrollueshme nga përdoruesi në një formë të sigurt përpara se t'i jepni ato. Përdorni kodimin e entitetit HTML për trupin HTML dhe kodimin e përshtatshëm JavaScript ose CSS për ato kontekste specifike [S1][S2].
  • Filtro Hyrja në mbërritje: Zbatoni lista strikte lejimi për formatet e pritshme të hyrjes dhe refuzoni çdo gjë që nuk përputhet me [S1][S2].
  • Përdorni titujt e sigurisë: Vendosni flamurin HttpOnly në kukit e sesionit për të parandaluar aksesin nëpërmjet JavaScript [S2]. Përdorni Content-Type dhe X-Content-Type-Options: nosniff për të siguruar që shfletuesit të mos keqinterpretojnë përgjigjet si kod të ekzekutueshëm [S1].
  • Politika e sigurisë së përmbajtjes (CSP): Vendosni një CSP të fortë për të kufizuar burimet nga të cilat mund të ngarkohen dhe ekzekutohen skriptet, duke siguruar një shtresë të thellë mbrojtjeje ZXCVFIXVIBETOKEN0ZXFIXZVIBETOKEN.

Si e teston FixVibe për të

FixVibe mund të zbulojë XSS përmes një qasjeje me shumë shtresa të bazuara në metodologjitë e vendosura të skanimit [S1]:

  • Skanime pasive: Identifikimi i titujve të sigurisë që mungojnë ose të dobët si Content-Security-Policy ose X-Content-Type-Options që janë krijuar për të zbutur XSS Content-Security-Policy.
  • Sondimet aktive: Injektimi i vargjeve alfanumerike unike, jo keqdashëse në parametrat e URL-së dhe fushat e formës për të përcaktuar nëse ato pasqyrohen në trupin e përgjigjes pa kodimin e duhur [S1].
  • Skanime Repo: Analizimi i JavaScript-it në anën e klientit për "mbytet" që trajtojnë të dhëna të pabesueshme në mënyrë të pasigurt, të tilla si innerHTML, document.write ose setTimeout të cilat janë tregues të zakonshëm të DOM-it, XSS [S1].