XSS-árásir gera árásaraðilum kleift að sprauta viðskiptavinahliðarskriptum inn í vefsíður sem aðrir notendur skoða. Helstu áhrif þessa veikleika eru að hægt er að framkvæma hvaða aðgerðir sem er í samhengi innskráðs notanda og lesa hvaða gögn sem er í samhengi innskráðs notanda.
Hér er tómt.
Árásarsenari
Árásandinn finnur XSS-veikleika á vefsíðu sem fórnarlambið notar, t.d. vefsíðu banka.
Þolandi er nú innskráður á þessa síðu
Árásandinn sendir fórnarlambinu tilbúna vefslóð.
Brotaþoli smellir á vefslóðina.
Á fórnarlambsins banki vefsíða, JavaScriptkóði byrjar að framkvæma til að stöðva notandans gögn eða framkvæma millifærslu fyrir hans hönd á reikning árásaraðilans
Það er vert að taka fram að aðgerðir sem framkvæmdar eru fyrir hönd fórnarlambsins geta verið ósýnilegar fórnarlambinu, þar sem þær geta átt sér stað í bakgrunni með því að nota bankans forritaskil, eða árásaraðilinn getur framkvæmt þær síðar með gögnum sem þarf til auðkenningar, tokenum, kökum o.s.frv.
XSS-gerðir
1. Endurvarpað XSS
Þetta er dæmi þar sem HTML/JavaScript kóði sem er í hvaða breytu sem er (t.d. GET, POST eða cookie) birtist í svari.
Síða með textareit til að leita að einhverju sem setur breytuna ?leit=foo í loka hluta vefslóðarinnar þegar API-ið er fyrirspurt. Eftir að hafa slegið inn hvaða orðasamband sem er, ef það finnst ekki, er skilað skilaboðum í HTML, t.d.
<div>Engar niðurstöður fundust fyrir <b>fóó</b></div>
Við getum reynt að setja inn vefslóðina. ?search=..
2.DOM XSS
Þetta er þegar framkvæmd hennar er gerð möguleg með notkun hættulegra fallanna í JavaScript, svo sem meta eða innri HTML. “Live dæmið” hér að neðan sýnir DOM XSS-árás byggða á innri HTML falli.
3. Geymdur XSS
Þetta er dæmi um þegar illgjarn kóði er skrifaður á þjónahliðinni. Til dæmis gætum við sent athugasemd með illgjarnan kóða við bloggfærslu sem er hlaðin upp á þjóninn. Verkefni hans er til dæmis að bíða eftir samþykki stjórnanda og stela síðan lotugögnum hans o.s.frv.
Inndælingaraðferðir
1. Í merkis efni
`onerror=alert('XSS')`í
<img src onerror="alert('XSS')" />
2. Í efni eiginleikans
" onmouseover=alert('XSS') í
<div class="" onmouseover="alert('XSS')""></div>
Í efni eiginleikans án gæsalappa
x onclick=alert('XSS')í
<div class="x" onclick="alert('XSS')"></div>
Í tengillef-eiginleiki
javascript:alert('XSS') í
<a href="javascript:alert('XSS')"></a>
Í strengnum inni í JavaScript kóða
";alert('XSS')// í
<script>let username="";alert('XSS')//";</script>
Í eiginleikanum með JavaScript-atburðinum
');alert('XSS')// hvar og #39; er eintökulóð, inn í
Gagna kóðun með innbyggðum fallum sem finnast í mörgum forritunarmál.
Að nota sniðmátakerfi með sjálfvirkri kóðun. Flestir vinsælir rammasetningar sem nota slík kerfi vernda okkur frá XSS-sprautu (Django, Sniðmát, Vue, React o.s.frv.
Ekki nota fall eins og meta eða Starfsemi með ótraustum notendagögnum.
Ekki nota fall og eiginleika sem úthluta HTML-kóða beint í DOM-trésþætti, t.d., innefni HTML, ytriHTML, Settu inn HTML-ið milli merkjanna., Skrifa í skjalið.. Í staðinn geturðu notað fall sem úthluta textanum beint í þessa þætti, svo sem Texti innihalds eða innri texti.
Vertu varkár þegar þú vísar notandanum á vefslóð sem hann hefur stjórn á. Áhætta á innsprautu. staðsetning = 'javascript('XSS')'.
Sía HTML með bókasöfnum eins og DOMhreinsa.
Vertu varkár við að hlaða upp .html eða .svg skrár. Þú getur búið til sérstakt lén sem þjónar hlaðnum skrám.
Notaðu Innihaldsöryggisstefna vélbúnaður.
Skoðaðu XSS-varnarsíur sem eru innbyggðar í vinsælustu vafrana.
Ef þér finnst þessi grein áhugaverð, fylgdu Lukasz á Github: https://github.com/twistezo