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
HttpOnlynë kukit e sesionit për të parandaluar aksesin nëpërmjet JavaScript [S2]. PërdorniContent-TypedheX-Content-Type-Options: nosniffpë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-PolicyoseX-Content-Type-Optionsqë janë krijuar për të zbutur XSSContent-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.writeosesetTimeouttë cilat janë tregues të zakonshëm të DOM-it, XSS [S1].
