FixVibe
Covered by FixVibehigh

Откривање и спречување на ранливости на скриптирање меѓу локации (XSS)

Скриптирање меѓу страници (XSS) се случува кога апликацијата вклучува недоверливи податоци во веб-страница без соодветна валидација или кодирање. Ова им овозможува на напаѓачите да извршуваат малициозни скрипти во прелистувачот на жртвата, што доведува до киднапирање на сесии, неовластени дејства и изложување на чувствителни податоци.

CWE-79

Влијание

Напаѓачот кој успешно ја експлоатира ранливоста на меѓусебно скриптирање (XSS) може да се маскира како жртва на корисник, да изврши каква било акција што корисникот е овластен да ја изврши и да пристапи до сите податоци на корисникот [S1]. Ова вклучува крадење колачиња од сесии за киднапирање сметки, фаќање акредитиви за најавување преку лажни форми или вршење виртуелно обезличување [S1][S2]. Ако жртвата има административни привилегии, напаѓачот може да добие целосна контрола над апликацијата и нејзините податоци [S1].

Основна причина

XSS се случува кога апликацијата добива влез кој може да го контролира корисникот и го вклучува во веб-страница без соодветна неутрализација или кодирање [S2]. Ова овозможува внесувањето да се толкува како активна содржина (JavaScript) од прелистувачот на жртвата, заобиколувајќи ја политиката за исто потекло дизајнирана да ги изолира веб-локациите едни од други [S1][S2].

Типови на ранливост

  • Рефлектирано XSS: Злонамерните скрипти се рефлектираат од веб-апликацијата на прелистувачот на жртвата, обично преку параметарот на URL-то [S1].
  • Зачувано XSS: Скриптата е трајно зачувана на серверот (на пр., во база на податоци или дел за коментари) и се служи на корисниците подоцна [S1][S2].
  • XSS базиран на DOM: Ранливоста постои целосно во кодот од клиентот кој ги обработува податоците од недоверлив извор на небезбеден начин, како што е запишување на innerHTML [S1].

Бетонски поправки

  • Кодирајте податоци на излез: Конвертирајте ги податоците што може да ги контролира корисникот во безбедна форма пред да ги рендерирате. Користете HTML ентитет кодирање за телото HTML и соодветно кодирање JavaScript или CSS за тие специфични контексти [S1][S2].
  • Внесување на филтер при пристигнување: Имплементирајте строги листи за дозволи за очекуваните формати за внесување и отфрлете се што не е во согласност со [S1][S2].
  • Користете безбедносни заглавија: Поставете го знамето HttpOnly на колачињата за сесија за да спречите пристап преку JavaScript [S2]. Користете Content-Type и X-Content-Type-Options: nosniff за да се осигурате дека прелистувачите нема погрешно да ги толкуваат одговорите како извршна шифра [S1].
  • Политика за безбедност на содржината (CSP): Распоредете силен CSP за да ги ограничите изворите од кои може да се вчитуваат и извршуваат скриптите, обезбедувајќи слој за одбрана во длабочина ZXCVFIXVIBETOKEN0ZXFIXZVIBETOKEN.

Како FixVibe тестира за него

FixVibe може да открие XSS преку повеќеслоен пристап заснован на воспоставени методологии за скенирање [S1]:

  • Пасивни скенирања: Идентификување на исчезнати или слаби безбедносни заглавија како Content-Security-Policy или X-Content-Type-Options кои се дизајнирани да го ублажат XSS ZXCVFIXVIBETOKEN2ZX.
  • Активни сонди: Инјектирање уникатни, не-злонамерни алфанумерички низи во параметрите на URL-то и полињата за форма за да се утврди дали тие се рефлектираат во телото за одговор без соодветно кодирање [S1].
  • Репо скенирање: Анализирање на JavaScript од страна на клиентот за „мијалници“ кои небезбедно ракуваат со недоверливи податоци, како што се innerHTML, document.write или setTimeout, кои се вообичаени показатели за DXCV, XSS [S1].