Ազդեցություն
Հարձակվողը, ով հաջողությամբ շահագործում է Cross-Site Scripting (XSS) խոցելիությունը, կարող է դիմակայել որպես զոհ օգտագործող, իրականացնել ցանկացած գործողություն, որը օգտատերը լիազորված է կատարել և մուտք գործել օգտվողի ցանկացած տվյալ [S1]: Սա ներառում է սեսիայի թխուկների գողություն՝ հաշիվները հափշտակելու համար, կեղծ ձևաթղթերի միջոցով մուտքի հավատարմագրերի գրավում կամ [S1][S2] վիրտուալ խեղաթյուրում: Եթե տուժողն ունի վարչական արտոնություններ, հարձակվողը կարող է լիարժեք վերահսկողություն ձեռք բերել հավելվածի և դրա տվյալների վրա [S1]:
Արմատային պատճառ
XSS տեղի է ունենում, երբ հավելվածը ստանում է օգտվողի կողմից կառավարվող մուտքագրում և ներառում է այն վեբ էջում՝ առանց պատշաճ չեզոքացման կամ կոդավորման [S2]: Սա թույլ է տալիս ներածումը մեկնաբանել որպես ակտիվ բովանդակություն (JavaScript) զոհի դիտարկիչի կողմից՝ շրջանցելով նույն ծագման քաղաքականությունը, որը նախատեսված է կայքերը միմյանցից մեկուսացնելու համար [S1][S2]:
խոցելիության տեսակները
- արտացոլված XSS: Վնասակար սկրիպտները արտացոլվում են վեբ հավելվածից տուժածի դիտարկիչում, սովորաբար URL-ի պարամետրի միջոցով [S1]:
- Պահված է XSS: Սկրիպտը մշտապես պահվում է սերվերում (օրինակ՝ տվյալների բազայում կամ մեկնաբանությունների բաժնում) և ավելի ուշ սպասարկվում է օգտվողներին [S1][S2]:
- DOM-ի վրա հիմնված XSS: Խոցելիությունը ամբողջությամբ առկա է հաճախորդի կողմից օգտագործվող կոդում, որը մշակում է տվյալներ անվստահելի աղբյուրից ոչ անվտանգ եղանակով, օրինակ՝ գրել
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].
- **Պասիվ սկանավորումներ.
- Ակտիվ զոնդեր. Եզակի, ոչ վնասակար ալֆան-թվային տողերի ներարկում URL-ի պարամետրերի և ձևի դաշտերի մեջ՝ որոշելու, թե արդյոք դրանք արտացոլված են պատասխան մարմնում՝ առանց [S1] պատշաճ կոդավորման:
- Ռեպո սկանավորումներ. Հաճախորդի կողմից JavaScript-ի վերլուծություն «լվացարանների» համար, որոնք անվստահորեն մշակում են անվստահելի տվյալները, ինչպիսիք են
innerHTML,document.writeկամsetTimeout-ի ընդհանուր ցուցիչները, XSS [S1].
