html injection tutorial
Podrobný pohled na HTML Injection:
Abychom lépe vnímali HTML Injection, měli bychom nejprve vědět, co je HTML.
HTML je značkovací jazyk, ve kterém jsou všechny prvky webu zapsány do značek. Většinou se používá k vytváření webových stránek. Webové stránky se do prohlížeče odesílají ve formě dokumentů HTML. Pak jsou tyto dokumenty HTML převedeny na normální webové stránky a zobrazeny konečným uživatelům.
Tento výukový program vám poskytne kompletní přehled o HTML Injection, jeho typech a preventivních opatřeních spolu s praktickými příklady v jednoduchých termínech pro snadné pochopení konceptu.
Co se naučíte:
- Co je to HTML Injection?
- Typy vkládání HTML
- Jak se provádí vkládání HTML?
- Jak testovat proti vložení HTML?
- Jak zabránit vložení HTML?
- Srovnání s jinými útoky
- Závěr
- Doporučené čtení
Co je to HTML Injection?
Podstatou tohoto typu injekčního útoku je vstřikování kódu HTML přes zranitelné části webu. Škodlivý uživatel odešle kód HTML prostřednictvím libovolného zranitelného pole za účelem změny designu webu nebo jakýchkoli informací, které se uživateli zobrazují.
Ve výsledku se uživateli mohou zobrazit data, která byla odeslána uživatelem se zlými úmysly. Obecně je tedy HTML Injection pouze vložením kódu značkovacího jazyka do dokumentu stránky.
Data, která se odesílají během tohoto typu injekčního útoku, se mohou velmi lišit. Může to být několik značek HTML, které pouze zobrazí odeslané informace. Může to být také celá falešná forma nebo stránka. Když k tomuto útoku dojde, prohlížeč obvykle interpretuje škodlivá uživatelská data jako legitimní a zobrazí je.
Změna vzhledu webu není jediným rizikem, které tento typ útoku přináší. Je to docela podobné útoku XSS, kdy uživatel se zlými úmysly krade identity jiných osob. Během tohoto injekčního útoku proto může dojít také ke krádeži identity jiné osoby.
Typy vkládání HTML
Tento útok se nejeví jako příliš obtížný na pochopení nebo provedení, protože HTML je považován za docela jednoduchý jazyk. Existují však různé způsoby, jak tento typ útoku provést. Můžeme také rozlišit různé typy této injekce.
Za prvé, různé typy mohou být tříděny podle rizik, která přinášejí.
Jak již bylo zmíněno, tento injekční útok lze provést dvěma různými účely:
- Chcete-li změnit vzhled zobrazeného webu.
- Ukrást identitu jiné osoby.
Tento injekční útok lze také provést prostřednictvím různých částí webu, tj. Polí pro zadávání dat a odkazu na web.
Mezi hlavní typy však patří:
- Uložená injekce HTML
- Odražené vložení HTML
# 1) Uložená injekce HTML:
Hlavní rozdíl mezi těmito dvěma typy injekcí spočívá v tom, že k uloženému injekčnímu útoku dochází, když je škodlivý kód HTML uložen na webovém serveru a je prováděn pokaždé, když uživatel zavolá příslušnou funkci.
V případě útoku odraženého vstřikování se však škodlivý kód HTML trvale neukládá na webový server. Reflected Injection nastane, když web okamžitě reaguje na nebezpečný vstup.
# 2) Reflected HTML Injection:
To lze opět rozdělit na více typů:
- Odráží se ZÍSKAT
- Odráží POST
- Odráží URL
Útok Reflected Injection lze provést odlišně podle metod HTTP, tj. GET a POST. Připomínám, že s metodou POST se odesílají data a s metodou GET se požadují data.
jak otevřít soubor eps v systému Windows 10
Abychom věděli, která metoda se používá pro příslušné prvky webových stránek, můžeme zkontrolovat zdroj stránky.
Například , tester může zkontrolovat zdrojový kód pro přihlašovací formulář a zjistit, jaká metoda se pro něj používá. Poté lze odpovídajícím způsobem vybrat vhodnou metodu HTML Injection.
Odráží vstřikování GET nastane, když se náš vstup zobrazí (projeví) na webu. Předpokládejme, že máme jednoduchou stránku s vyhledávacím formulářem, která je zranitelná tímto útokem. Pokud bychom tedy zadali jakýkoli HTML kód, objeví se na našem webu a současně bude vložen do HTML dokumentu.
Například zadáme jednoduchý text se značkami HTML:
Odráží POST HTML Injection je trochu obtížnější. Dochází k němu při odesílání škodlivého kódu HTML namísto správných parametrů metody POST.
Například , máme přihlašovací formulář, který je zranitelný vůči útoku HTML. Data zadaná do přihlašovacího formuláře se odesílají metodou POST. Pokud bychom tedy místo správných parametrů zadali jakýkoli HTML kód, bude odeslán metodou POST a zobrazen na webu.
K provedení útoku Reflected POST HTML se doporučuje použít speciální plugin prohlížeče, který falešná odeslaná data. Jedním z nich je plugin Mozilla Firefox „Tamper Data“. Plugin přebírá odeslaná data a umožňuje uživateli je změnit. Poté se odesílají a zobrazují změněná data na webu.
Například, pokud použijeme takový plugin, pošleme stejný HTML kód nebo vyhledejte kód formuláře, pokud chcete otestovat něco složitějšího Zadejte text, který chcete vyhledat
Pokud se zobrazí kód HTML, který je někde uložen, pak si tester může být jistý, že je tento injekční útok možný. Pak může být vyzkoušen složitější kód - pro Příklad , pro zobrazení falešného přihlašovacího formuláře.
Dalším řešením je skener HTML Injection. Automatické skenování proti tomuto útoku vám může ušetřit spoustu času. Chtěl bych upozornit, že v porovnání s jinými útoky není mnoho nástrojů pro testování HTML Injection.
Jedním z možných řešení je však aplikace WAS. WAS lze pojmenovat jako poměrně silný skener zranitelnosti, protože testuje s různými vstupy a ne jen se zastaví s prvním selháním.
Je užitečné pro testování, možná, jak je uvedeno ve výše uvedeném pluginu prohlížeče „Tamper Data“, získává odeslaná data, umožňuje testeru je změnit a odeslat do prohlížeče.
Můžeme také najít některé nástroje pro online skenování, kde stačí uvést odkaz na web a bude provedeno skenování proti útoku HTML. Po dokončení testování se zobrazí souhrn.
Rád bych poznamenal, že při výběru skenovacího nástroje musíme věnovat pozornost tomu, jak analyzuje výsledky a je dostatečně přesný nebo ne.
Je však třeba mít na paměti, že ruční testování by nemělo být zapomenuto. Tímto způsobem si můžeme být jisti, jaké přesné vstupy jsou vyzkoušeny a jaké přesné výsledky dosahujeme. I tímto způsobem je snazší analyzovat výsledky.
Z mých zkušeností v kariéře testování softwaru bych chtěl poznamenat, že pro oba způsoby testování bychom měli mít dobré znalosti o tomto typu injekce. Jinak by bylo obtížné vybrat vhodný automatizační nástroj a analyzovat jeho výsledky. Také se vždy doporučuje nezapomenout otestovat ručně, protože nám to zajistí větší jistotu ohledně kvality.
Jak zabránit vložení HTML?
Není pochyb o tom, že hlavním důvodem tohoto útoku je nepozornost vývojáře a nedostatek znalostí. K tomuto typu injekčního útoku dochází, když vstup a výstup nejsou správně ověřeny. Proto je hlavním pravidlem, jak zabránit útoku HTML, vhodná validace dat.
Každý vstup by měl být zkontrolován, pokud obsahuje jakýkoli kód skriptu nebo jakýkoli kód HTML. Obvykle se kontroluje, zda kód obsahuje speciální skript nebo závorky HTML -,.
Existuje mnoho funkcí pro kontrolu, zda kód obsahuje nějaké speciální závorky. Výběr kontrolní funkce závisí na použitém programovacím jazyce.
Mělo by se pamatovat na to dobré testování bezpečnosti je také součástí prevence. Chtěl bych věnovat pozornost tomu, že jelikož je útok HTML Injection velmi vzácný, je třeba se o něm dozvědět méně literatury a vybrat méně skenerů pro automatické testování. Tato část testování zabezpečení by však opravdu neměla chybět, protože nikdy nevíte, kdy k ní může dojít.
Vývojář i tester by také měli mít dobré znalosti o tom, jak se tento útok provádí. Dobré porozumění tomuto procesu útoku mu může pomoci zabránit.
Srovnání s jinými útoky
Ve srovnání s dalšími možnými útoky nebude tento útok rozhodně považován za tak riskantní jako SQL Injection nebo JavaScript Injection útok nebo dokonce XSS může být. Nezničí celou databázi ani neukradne všechna data z databáze. Nemělo by to však být považováno za bezvýznamné.
Jak již bylo zmíněno dříve, hlavním účelem tohoto typu injekce je změna vzhledu zobrazeného webu se zlým úmyslem a zobrazení vašich odeslaných informací nebo dat konečnému uživateli. Tato rizika lze považovat za méně důležitá.
Změněný vzhled webu však může stát reputaci vaší společnosti. Pokud by uživatel se zlými úmysly zničil vzhled vašeho webu, může to změnit názory návštěvníka na vaši společnost.
Je třeba si uvědomit, že dalším rizikem, které tento útok na web přináší, je krádež identity jiného uživatele.
Jak již bylo zmíněno, s HTML Injection může uživatel se zlými úmysly vložit celou stránku, která by se zobrazila konečnému uživateli. Pokud pak konečný uživatel na falešné přihlašovací stránce uvede své přihlašovací údaje, budou odeslány uživateli se zlými úmysly. Tento případ je samozřejmě nejrizikovější částí tohoto útoku.
Je třeba zmínit, že pro krádež dat jiných uživatelů je tento typ útoku vybrán méně často, protože existuje spousta dalších možných útoků.
Je to však velmi podobné útoku XSS, který krade soubory cookie uživatele a další identity uživatelů. Existují také útoky XSS, které jsou založeny na HTML. Proto může být testování proti XSS a HTML útoku velmi podobné a prováděno společně.
Závěr
Protože HTML Injection není tak populární jako jiné útoky, lze jej považovat za méně riskantní než jiné útoky. Testování proti tomuto typu vstřikování je proto někdy přeskočeno.
Rovněž je patrné, že o HTML Injection je rozhodně méně literatury a informací. Proto se testeři mohou rozhodnout tento typ testování neprovádět. V tomto případě však může být riziko útoku HTML nedostatečně vyhodnoceno.
Jak jsme analyzovali v tomto tutoriálu, u tohoto typu Injection může dojít ke zničení celého designu vašeho webu nebo dokonce ke krádeži přihlašovacích údajů uživatele. Proto se důrazně doporučuje zahrnout HTML Injection do testování bezpečnosti a investovat dobré znalosti.
Setkali jste se s nějakým typickým HTML Injection? Neváhejte se podělit o své zkušenosti v sekci komentáře níže.
Doporučené čtení
- Výukové programy pro zatmění do hloubky pro začátečníky
- Výukový program pro testování injekce SQL (příklad a prevence útoku SQL Injection)
- Výukový program Python DateTime s příklady
- Výukový program útoku na Cross Site Scripting (XSS) s příklady, typy a prevencí
- Výukový program pro vstřikování JavaScriptu: Testování a prevence útoků JS Injection na webu
- Výukový program pro skriptování prostředí Unix s příklady
- Výukový program pro vyhledání prvku selen pomocí textu s příklady
- Výukový program pro hlavní funkce Pythonu s praktickými příklady