html injection tutorial
Podrobný pohľad na HTML Injection:
Pre lepšie vnímanie HTML Injection by sme najskôr mali vedieť, čo je HTML.
HTML je značkovací jazyk, v ktorom sú všetky prvky webu napísané v značkách. Väčšinou sa používa na tvorbu webových stránok. Webové stránky sa odosielajú do prehľadávača vo forme dokumentov HTML. Potom sa tieto dokumenty HTML prevedú na bežné webové stránky a zobrazia sa pre konečných používateľov.
Tento výukový program vám poskytne kompletný prehľad o vstrekovaní HTML, jeho typoch a preventívnych opatreniach spolu s praktickými príkladmi v jednoduchom zmysle pre ľahké pochopenie konceptu.
Čo sa dozviete:
- Čo je to HTML Injection?
- Typy vstrekovania HTML
- Ako sa vykonáva vstrekovanie HTML?
- Ako testovať proti vloženiu HTML?
- Ako zabrániť vloženiu HTML?
- Porovnanie s inými útokmi
- Záver
- Odporúčané čítanie
Čo je to HTML Injection?
Podstatou tohto typu injekčného útoku je vstrekovanie kódu HTML cez zraniteľné časti webových stránok. Škodlivý používateľ odošle kód HTML prostredníctvom ľubovoľného zraniteľného poľa s cieľom zmeniť vzhľad webu alebo akékoľvek informácie, ktoré sa mu zobrazia.
Vo výsledku sa používateľovi môžu zobraziť údaje, ktoré odoslal používateľ so zlým úmyslom. Preto je vo všeobecnosti HTML Injection iba vložením kódu značkovacieho jazyka do dokumentu stránky.
Údaje, ktoré sa odosielajú počas tohto typu injekčného útoku, sa môžu veľmi líšiť. Môže to byť niekoľko značiek HTML, ktoré iba zobrazia odoslané informácie. Môže to byť aj celá falošná forma alebo stránka. Keď dôjde k tomuto útoku, prehľadávač zvyčajne interpretuje škodlivé údaje používateľov ako legitímne a zobrazí ich.
Zmena vzhľadu webových stránok nie je jediným rizikom, ktoré tento typ útoku prináša. Je to podobné ako s útokom XSS, keď používateľ so zlým úmyslom kradne totožnosť inej osoby. Preto počas tohto injekčného útoku môže dôjsť aj ku krádeži identity inej osoby.
Typy vstrekovania HTML
Zdá sa, že tento útok nie je veľmi ťažké pochopiť alebo vykonať, pretože HTML sa považuje za celkom jednoduchý jazyk. Existujú však rôzne spôsoby vykonávania tohto typu útoku. Môžeme tiež rozlíšiť rôzne typy tejto injekcie.
Po prvé, rôzne typy možno roztriediť podľa rizík, ktoré so sebou prinášajú.
Ako už bolo spomenuté, tento injekčný útok je možné vykonať na dva rôzne účely:
- Ak chcete zmeniť vzhľad zobrazeného webu.
- Ukradnúť identitu inej osoby.
Tento injekčný útok je tiež možné vykonať prostredníctvom rôznych častí webu, t. J. Polí pre zadávanie údajov a odkazu na web.
Hlavné typy sú však:
- Uložené vloženie HTML
- Odrazené vstrekovanie HTML
# 1) Uložené vloženie kódu HTML:
Hlavný rozdiel medzi týmito dvoma typmi vstrekovania spočíva v tom, že k uloženému vstrekovaciemu útoku dôjde pri uložení škodlivého kódu HTML na webový server a vykoná sa vždy, keď používateľ zavolá príslušnú funkciu.
Avšak v prípade útoku s prejaveným vstreknutím sa škodlivý HTML kód na webovom serveri neukladá natrvalo. K odrazenému vstrekovaniu dochádza, keď webová stránka okamžite reaguje na nebezpečný vstup.
# 2) Odrazené vstrekovanie HTML:
To možno opäť rozdeliť na viac typov:
- Odráža sa ZÍSKAŤ
- Odrazený POST
- Odrazená adresa URL
Útok Reflected Injection je možné vykonať odlišne podľa metód HTTP, tj. GET a POST. Pripomínam, že pri metóde POST sa odosielajú údaje a pri metóde GET sa požadujú údaje.
Aby sme vedeli, ktorá metóda sa používa pre príslušné prvky webových stránok, môžeme skontrolovať zdroj stránky.
Napríklad , tester môže skontrolovať zdrojový kód pre prihlasovací formulár a zistiť, aká metóda sa na to používa. Potom je možné zodpovedajúcim spôsobom zvoliť vhodnú metódu injektovania HTML.
unixové otázky a odpovede pre skúsených
Odrazené vstrekovanie GET nastane, keď sa náš vstup zobrazí (prejaví) na webovej stránke. Predpokladajme, že máme jednoduchú stránku s vyhľadávacím formulárom, ktorá je zraniteľná voči tomuto útoku. Ak by sme napísali akýkoľvek kód HTML, zobrazí sa na našom webe a súčasne sa vloží do dokumentu HTML.
Napríklad zadáme jednoduchý text so značkami HTML:
Odrazené POST vstrekovanie HTML je trochu náročnejšia. Nastáva, keď sa namiesto správnych parametrov metódy POST odosiela škodlivý kód HTML.
Napríklad , máme prihlasovací formulár, ktorý je zraniteľný voči útoku HTML. Údaje zadané do prihlasovacieho formulára sa odosielajú metódou POST. Ak by sme potom namiesto správnych parametrov napísali akýkoľvek HTML kód, potom sa odošle metódou POST a zobrazí sa na webe.
Na vykonanie útoku Reflected POST HTML sa odporúča použiť špeciálny doplnok prehliadača, ktorý falošné odosielané údaje. Jedným z nich je doplnok Mozilla Firefox „Tamper Data“. Plugin prevezme odoslané údaje a umožní ich používateľovi zmeniť. Potom sa zmenené údaje odošlú a zobrazia na webovej stránke.
Napríklad, ak použijeme taký plugin, tak by sme poslali rovnaký HTML kód alebo vyhľadajte kód formulára, ak chcete otestovať niečo zložitejšie Zadajte text, ktorý chcete vyhľadať
Ak sa niekde zobrazí HTML kód, ktorý je niekde uložený, môže si tester byť istý, že tento injekčný útok je možný. Potom je možné vyskúšať zložitejší kód Príklad , aby ste zobrazili falošný prihlasovací formulár.
Ďalším riešením je skener HTML Injection. Automatické skenovanie proti tomuto útoku vám môže ušetriť veľa času. Chcel by som upozorniť, že v porovnaní s inými útokmi nie je veľa nástrojov na testovanie HTML Injection.
Jedným z možných riešení je však aplikácia WAS. WAS možno nazvať ako pomerne silný skener zraniteľností, pretože testuje s rôznymi vstupmi a nielen sa zastaví pri prvom zlyhaní.
Je to užitočné pri testovaní, možno ako je uvedené vo vyššie uvedenom doplnku prehliadača „Tamper Data“, získava odoslané údaje, umožňuje testerovi ich zmeniť a odosiela ich do prehliadača.
Nájdeme tiež niekoľko nástrojov na skenovanie online, kde stačí uviesť odkaz na web a vykoná sa skenovanie proti útoku HTML. Po dokončení testovania sa zobrazí súhrn.
Rád by som poznamenal, že pri výbere skenovacieho nástroja musíme venovať pozornosť tomu, ako analyzuje výsledky a či je dostatočne presný alebo nie.
Malo by sa však pamätať na to, že by sa nemalo zabúdať na manuálne testovanie. Takto si môžeme byť istí, aké presné vstupy sa skúšajú a aké presné výsledky dosahujeme. Aj takto je ľahšie analyzovať výsledky.
Z mojej skúsenosti v kariére testovania softvéru by som rád poznamenal, že pre obidva spôsoby testovania by sme mali mať dobré vedomosti o tomto type injekcie. V opačnom prípade by bolo ťažké zvoliť vhodný automatizačný nástroj a analyzovať jeho výsledky. Vždy sa tiež odporúča nezabudnúť na ručné testovanie, pretože sme tým viac istí kvalitou.
Ako zabrániť vloženiu HTML?
Niet pochýb o tom, že hlavným dôvodom tohto útoku je nepozornosť vývojára a nedostatok vedomostí. Tento typ injekčného útoku nastáva, keď vstup a výstup nie sú správne overené. Preto hlavným pravidlom na zabránenie útoku HTML je vhodná validácia údajov.
Každý vstup by sa mal skontrolovať, či obsahuje nejaký kód skriptu alebo akýkoľvek kód HTML. Spravidla sa kontroluje, či kód obsahuje nejaký špeciálny skript alebo zátvorky HTML -,.
Existuje mnoho funkcií na kontrolu, či kód obsahuje nejaké špeciálne zátvorky. Výber kontrolnej funkcie závisí od programovacieho jazyka, ktorý používate.
Malo by sa pamätať na to, dobre testovanie bezpečnosti je tiež súčasťou prevencie. Chcel by som venovať pozornosť tomu, že keďže útok HTML Injection je veľmi zriedkavý, je potrebné sa o ňom dozvedieť menej literatúry a je potrebné zvoliť menej skenerov na automatické testovanie. Táto časť bezpečnostného testovania by však skutočne nemala chýbať, pretože nikdy neviete, kedy sa to môže stať.
Vývojár aj tester by tiež mali mať dobré znalosti o tom, ako sa tento útok vykonáva. Dobré pochopenie tohto procesu útoku vám môže zabrániť.
php interview otázky a odpovede na 5 ročné skúsenosti
Porovnanie s inými útokmi
V porovnaní s ostatnými možnými útokmi sa tento útok rozhodne nebude považovať za taký riskantný ako SQL Injection alebo Útok injekciou JavaScriptu alebo môže byť aj XSS. Nezničí celú databázu ani neukradne všetky údaje z databázy. Nemalo by sa to však považovať za bezvýznamné.
Ako už bolo spomenuté, hlavným účelom tohto typu vstrekovania je zmena vzhľadu zobrazeného webu so škodlivým účelom a zobrazenie vašich odoslaných informácií alebo údajov koncovému používateľovi. Tieto riziká možno považovať za menej dôležité.
Zmena vzhľadu webových stránok však môže stáť reputáciu vašej spoločnosti. Ak by používateľ so zlým úmyslom zničil vzhľad vašej webovej stránky, mohlo by to zmeniť názory návštevníkov na vašu spoločnosť.
Malo by sa pamätať na to, že ďalším rizikom, ktoré tento útok na web prináša, je krádež identity iného používateľa.
Ako už bolo spomenuté, pomocou aplikácie HTML Injection môže škodlivý používateľ vložiť celú stránku, ktorá by sa zobrazila konečnému používateľovi. Ak potom konečný používateľ uvedie svoje prihlasovacie údaje na falošnej prihlasovacej stránke, budú odoslané škodlivému používateľovi. Tento prípad je samozrejme najrizikovejšou časťou tohto útoku.
Je potrebné spomenúť, že pri krádeži údajov iných používateľov je tento typ útoku vyberaný menej často, pretože existuje veľa ďalších možných útokov.
Je to však veľmi podobné útoku XSS, ktorý kradne cookies používateľa a ďalšie identity používateľov. Existujú aj útoky XSS, ktoré sú založené na HTML. Preto môže byť testovanie proti útoku XSS a HTML veľmi podobné a môže sa vykonať spoločne.
Záver
Pretože vstrekovanie HTML nie je také populárne ako iné útoky, môže sa považovať za menej rizikové ako iné útoky. Testovanie tohto typu injekcie sa preto niekedy vynechá.
Tiež je zrejmé, že o HTML Injection je určite menej literatúry a informácií. Preto sa testeri môžu rozhodnúť tento typ testovania nevykonať. V takom prípade však riziko útoku HTML nemusí byť dostatočne vyhodnotené.
Ako sme analyzovali v tomto výučbe, pri tomto type Injekcie môže dôjsť k zničeniu celého dizajnu vášho webu alebo dokonca k odcudzeniu prihlasovacích údajov používateľa. Preto sa dôrazne odporúča zahrnúť HTML Injection do testovania bezpečnosti a investovať dobré znalosti.
Stretli ste sa s nejakým typickým HTML Injection? Neváhajte a podeľte sa o svoje skúsenosti v sekcii komentárov nižšie.
Odporúčané čítanie
- Hĺbkové návody pre zatmenie pre začiatočníkov
- Výukový program na testovanie injekcie SQL (príklad a zabránenie útoku SQL Injection)
- Výukový program pre Python DateTime s príkladmi
- Výukový program útoku na krížové skriptovanie (XSS) s príkladmi, typmi a prevenciou
- Výukový program pre vstrekovanie JavaScriptu: Otestujte a zabráňte útokom JS Injection na webe
- Výukový program pre skriptovanie Unixu s príkladmi
- Sprievodca hľadaním prvkov selénom podľa výučby s príkladmi
- Výukový program pre hlavné funkcie Pythonu s praktickými príkladmi