Á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, JavaScript kóð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 í
<div onclick="change('');alert('XSS')//')">Jón</div>
- Í
tengillEiginleiki innan JavaScript-samskiptaprótókollsins
);alert(1)// hvar %27 er eintökulóð, inn í
<a href="javascript:change('%27);alert(1)//')">smelltu</a>
Lífs dæmi
Varnaraðferðir
- 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
metaeðaStarfsemimeð ó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 semTexti innihaldseðainnri 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
.htmleða.svgskrár. Þú getur búið til sérstakt lén sem þjónar hlaðnum skrám. - Notaðu
Innihaldsöryggisstefnavé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
Lesa meira:
Stefnur við gagnaleit í NextJS