FixVibe
Covered by FixVibehigh

Starpvietņu skriptēšanas (XSS) ievainojamību noteikšana un novēršana

Vairāku vietņu skriptēšana (XSS) notiek, ja lietojumprogramma tīmekļa lapā iekļauj neuzticamus datus bez atbilstošas validācijas vai kodēšanas. Tas ļauj uzbrucējiem izpildīt ļaunprātīgus skriptus upura pārlūkprogrammā, izraisot sesiju nolaupīšanu, neatļautas darbības un sensitīvu datu atklāšanu.

CWE-79

Ietekme

Uzbrucējs, kurš veiksmīgi izmanto Cross-Site skriptēšanas (XSS) ievainojamību, var maskēties kā upura lietotājs, veikt jebkuru darbību, ko lietotājs ir pilnvarots veikt, un piekļūt jebkuram lietotāja datiem. [S1]. Tas ietver sesijas sīkfailu zādzību, lai nolaupītu kontus, pieteikšanās akreditācijas datu tveršanu, izmantojot viltotas veidlapas, vai virtuālu sagrozīšanu [S1][S2]. Ja upurim ir administratīvās tiesības, uzbrucējs var iegūt pilnu kontroli pār lietojumprogrammu un tās datiem [S1].

Galvenais cēlonis

XSS rodas, kad lietojumprogramma saņem lietotāja vadāmu ievadi un iekļauj to tīmekļa lapā bez atbilstošas neitralizācijas vai kodēšanas [S2]. Tādējādi upura pārlūkprogramma var interpretēt ievadi kā aktīvu saturu (JavaScript), apejot to pašu izcelsmes politiku, kas izstrādāta, lai izolētu vietnes vienu no otras [S1][S2].

Ievainojamības veidi

  • Atspoguļots XSS: Ļaunprātīgi skripti tiek atspoguļoti no tīmekļa lietojumprogrammas upura pārlūkprogrammā, parasti izmantojot URL parametru [S1].
  • Saglabāts XSS: Skripts tiek pastāvīgi saglabāts serverī (piem., datu bāzē vai komentāru sadaļā) un vēlāk tiek rādīts lietotājiem [S1][S2].
  • Uz DOM balstīta XSS: Ievainojamība pilnībā pastāv klienta puses kodā, kas apstrādā datus no neuzticama avota nedrošā veidā, piemēram, rakstot uz innerHTML [S1].

Betona labojumi

  • Kodēt datus izvadē: pirms renderēšanas konvertējiet lietotāja kontrolējamos datus drošā formā. Izmantojiet HTML entītijas kodējumu HTML pamattekstam un atbilstošu JavaScript vai CSS kodējumu šiem konkrētajiem kontekstiem [S1][S2].
  • Filtrēt ievadi ierašanās brīdī: ieviesiet stingrus atļaušanas sarakstus paredzamajiem ievades formātiem un noraidiet visu, kas neatbilst [S1][S2].
  • Izmantojiet drošības galvenes: sesijas sīkfailos iestatiet karogu HttpOnly, lai novērstu piekļuvi, izmantojot JavaScript [S2]. Izmantojiet Content-Type un X-Content-Type-Options: nosniff, lai nodrošinātu, ka pārlūkprogrammas atbildes nepareizi interpretē kā izpildāmu kodu [S1].
  • Satura drošības politika (CSP): Izvietojiet spēcīgu CSP, lai ierobežotu avotus, no kuriem var ielādēt un izpildīt skriptus, nodrošinot padziļinātu aizsardzības slāni [S1]ZBXVFIXIX.1.

Kā FixVibe to pārbauda

FixVibe varētu noteikt XSS, izmantojot daudzslāņu pieeju, kuras pamatā ir noteiktas skenēšanas metodoloģijas [S1]:

  • Pasīvā skenēšana: Trūkstošu vai vāju drošības virsrakstu identificēšana, piemēram, Content-Security-Policy vai X-Content-Type-Options, kas ir paredzēti, lai mazinātu XSS [S1].
  • Aktīvās pārbaudes: unikālu, ļaunprātīgu burtciparu virkņu ievadīšana URL parametros un veidlapu laukos, lai noteiktu, vai tās ir atspoguļotas atbildes pamattekstā bez atbilstoša kodējuma [S1].
  • Repo skenēšana: klienta puses JavaScript analīze, lai atrastu "izlietnes", kas nedroši apstrādā neuzticamus datus, piemēram, innerHTML, document.write vai setTimeout, kas ir bieži sastopami DVITCENCVF uz DVICCVF bāzēti rādītāji DVIXX. [S1].