html injection tutorial
Poglobljen pogled na HTML Injection:
Za boljše dojemanje vbrizga HTML-ja najprej vemo, kaj je HTML.
HTML je označevalni jezik, kjer so vsi elementi spletnega mesta zapisani v oznakah. Večinoma se uporablja za ustvarjanje spletnih strani. Spletne strani se brskalniku pošiljajo v obliki dokumentov HTML. Nato se ti dokumenti HTML pretvorijo v običajna spletna mesta in prikažejo končnim uporabnikom.
Ta vadnica vam bo dala popoln pregled HTML Injection-a, njegovih vrst in preventivnih ukrepov ter preproste primere za lažje razumevanje koncepta.
Kaj se boste naučili:
- Kaj je HTML Injection?
- Vrste vbrizga HTML
- Kako se izvaja vbrizgavanje HTML?
- Kako preizkusiti proti vbrizganju HTML-ja?
- Kako preprečiti vbrizgavanje HTML-ja?
- Primerjava z drugimi napadi
- Zaključek
- Priporočeno branje
Kaj je HTML Injection?
Bistvo te vrste vbrizgavanja je vbrizgavanje kode HTML skozi ranljive dele spletnega mesta. Zlonamerni uporabnik pošlje kodo HTML skozi katero koli ranljivo polje z namenom, da spremeni zasnovo spletnega mesta ali kakršne koli informacije, ki so uporabniku prikazane.
Posledično lahko uporabnik vidi podatke, ki jih je poslal zlonamerni uporabnik. Zato je na splošno HTML Injection le vbrizgavanje kode označevalnega jezika v dokument strani.
Podatki, ki se pošiljajo med tovrstnim napadom na injekcije, so lahko zelo različni. Lahko je nekaj oznak HTML, ki bodo samo prikazale poslane informacije. Lahko je tudi celotna ponarejena oblika ali stran. Ko pride do tega napada, brskalnik ponavadi zlonamerne uporabniške podatke interpretira kot zakonite in jih prikaže.
Spreminjanje videza spletnega mesta ni edino tveganje, ki ga prinaša tovrstni napad. Povsem podobno je napadu XSS, kjer zlonamerni uporabnik ukrade identitete druge osebe. Zato se med napadom na injekcije lahko zgodi tudi kraja identitete druge osebe.
Vrste vbrizga HTML
Zdi se, da tega napada ni težko razumeti ali izvesti, saj HTML velja za precej preprost jezik. Vendar obstajajo različni načini za izvajanje te vrste napada. Prav tako lahko ločimo različne vrste te injekcije.
Prvič, različne vrste lahko razvrstimo po tveganjih, ki jih prinašajo.
Kot smo že omenili, lahko ta injekcijski napad izvedemo z dvema različnima namenoma:
vprašanje in odgovor na intervju za preskušanje programske opreme
- Če želite spremeniti videz prikazanega spletnega mesta.
- Da ukradejo identiteto druge osebe.
Ta napad lahko vbrizgate tudi prek različnih delov spletnega mesta, to je polj za vnos podatkov in povezave do spletnega mesta.
Vendar so glavne vrste:
- Shranjeno vbrizgavanje HTML
- Reflected HTML Injection
# 1) Shranjeno vbrizgavanje HTML:
Glavna razlika med tema dvema vrstama vbrizga je v tem, da se shranjeni napad vbrizga zgodi, ko se zlonamerna koda HTML shrani v spletni strežnik in se izvede vsakič, ko uporabnik pokliče ustrezno funkcijo.
Vendar v primeru odsevnega vbrizgavanja zlonamerna koda HTML ni trajno shranjena na spletnem strežniku. Reflected Injection se zgodi, ko se spletno mesto takoj odzove na zlonamerne vnose.
# 2) Reflected HTML Injection:
To lahko spet razdelimo na več vrst:
- Odraženo GET
- Odsev POST
- Odseven URL
Reflected Injection napad lahko izvedemo drugače po metodah HTTP, tj. GET in POST. Spomnil bi, da se pri metodi POST pošiljajo podatki in pri metodi GET zahtevajo podatki.
Če želite vedeti, katera metoda se uporablja za ustrezne elemente spletnega mesta, lahko preverimo vir strani.
Na primer , preizkuševalec lahko preveri izvorno kodo za prijavni obrazec in ugotovi, katera metoda se zanj uporablja. Nato lahko ustrezno izberemo ustrezno metodo vbrizga HTML.
Odsevana injekcija GET zgodi, ko je naš prispevek prikazan (odsev) na spletnem mestu. Recimo, da imamo preprosto stran z obrazcem za iskanje, ki je ranljiva za ta napad. Potem, če bi vtipkali katero koli kodo HTML, se bo pojavila na našem spletnem mestu in hkrati vbrizgala v dokument HTML.
Na primer, vnesemo preprosto besedilo z oznakami HTML:
Odsev POST HTML Injection je nekoliko težje. To se zgodi, ko se namesto pravilnih parametrov metode POST pošlje zlonamerna koda HTML.
Na primer , imamo prijavni obrazec, ki je ranljiv za napade HTML. Podatki, vneseni v prijavni obrazec, se pošiljajo z metodo POST. Če bi namesto pravilnih parametrov vtipkali katero koli kodo HTML, bo ta poslana z metodo POST in prikazana na spletnem mestu.
Za izvedbo Reflected POST HTML napada je priporočljivo uporabiti poseben vtičnik brskalnika, ki bo ponaredil poslane podatke. Eden od njih je vtičnik Mozilla Firefox 'Tamper Data'. Vtičnik prevzame poslane podatke in uporabniku omogoči, da jih spremeni. Nato se spremenjeni podatki pošljejo in prikažejo na spletnem mestu.
Na primer, če uporabimo tak vtičnik, bi poslali isto kodo HTML ali kodo obrazca za iskanje, če želite preizkusiti kaj bolj zapletenega Vnesite besedilo za iskanje
Če je prikazana koda HTML, ki je nekje shranjena, je tester lahko prepričan, da je ta vbrizgavalni napad mogoč. Potem lahko poskusite z bolj zapleteno kodo Primer , za prikaz ponarejenega obrazca za prijavo.
Druga rešitev je skener za vbrizgavanje HTML. Samodejno skeniranje proti temu napadu vam lahko prihrani veliko časa. Obveščam vas, da v primerjavi z drugimi napadi ni veliko orodij za testiranje vbrizga HTML.
Vendar pa je ena od možnih rešitev aplikacija WAS. WAS lahko poimenujemo kot precej močan skener ranljivosti, saj preizkuša z različnimi vhodi in se ne ustavi samo s prvim neuspelim.
Koristno je za testiranje, morda, kot je omenjeno v zgornjem vtičniku brskalnika “Tamper Data”, dobi poslane podatke, preskusniku omogoči, da jih spremeni in pošlje brskalniku.
Najdemo tudi nekaj spletnih orodij za skeniranje, kjer morate navesti le povezavo do spletnega mesta in izvedeno bo skeniranje proti napadom HTML. Ko je testiranje končano, se prikaže povzetek.
Rad bi komentiral, da moramo biti pri izbiri orodja za skeniranje pozorni na to, kako analizira rezultate in ali je dovolj natančen ali ne.
Upoštevati pa je treba, da na ročno testiranje ne smemo pozabiti. Tako smo lahko prepričani, kateri natančni vhodni podatki so preizkušeni in kakšne natančne rezultate dobimo. Tudi na ta način je lažje analizirati tudi rezultate.
Iz svojih izkušenj v karieri testiranja programske opreme bi rad povedal, da bi morali za oba načina testiranja dobro poznati to vrsto vbrizgavanja. V nasprotnem primeru bi bilo težko izbrati ustrezno orodje za avtomatizacijo in analizirati njegove rezultate. Prav tako je vedno priporočljivo, da ne pozabite testirati ročno, saj smo le tako bolj prepričani o kakovosti.
Kako preprečiti vbrizgavanje HTML-ja?
Nobenega dvoma ni, da je glavni razlog za ta napad nepazljivost razvijalca in pomanjkanje znanja. Ta vrsta napada vbrizga se zgodi, če vhod in izhod nista pravilno potrjena. Zato je glavno pravilo za preprečevanje napada HTML ustrezna validacija podatkov.
Vsak vnos je treba preveriti, če vsebuje kodo skripta ali kodo HTML. Običajno se preverja, če koda vsebuje kakšen poseben skript ali oklepaje HTML -,.
Obstaja veliko funkcij za preverjanje, ali koda vsebuje posebne oklepaje. Izbira funkcije preverjanja je odvisna od programskega jezika, ki ga uporabljate.
Ne smemo pozabiti, da dobro preskušanje varnosti je tudi del preventive. Rad bi bil pozoren, da je napad na HTML Injection zelo redek, zato je manj literature, ki bi jo lahko izvedeli, in manj optičnega bralnika za samodejno testiranje. Vendar tega dela varnostnega preizkušanja res ne smete zamuditi, saj nikoli ne veste, kdaj se lahko zgodi.
Razvijalec in preizkuševalec morata dobro poznati tudi izvajanje tega napada. Dobro razumevanje tega napada lahko pomaga preprečiti.
Primerjava z drugimi napadi
V primerjavi z drugimi možnimi napadi ta napad zagotovo ne bo veljal za tako tveganega kot SQL Injection ali JavaScript Injection napad ali celo XSS. Ne bo uničil celotne baze podatkov ali ukradel vseh podatkov iz baze. Vendar se ne sme šteti za nepomembno.
Kot smo že omenili, je glavni namen te vrste vbrizgavanja spremeniti videz prikazanega spletnega mesta z zlonamernim namenom, tako da vaše poslane informacije ali podatke prikaže končnemu uporabniku. Ta tveganja se lahko štejejo za manj pomembna.
Vendar pa lahko spremenjen videz spletnega mesta stane ugleda vašega podjetja. Če bi zlonamerni uporabnik uničil videz vašega spletnega mesta, lahko to spremeni mnenje obiskovalca o vašem podjetju.
Ne smemo pozabiti, da je drugo tveganje, ki ga prinaša ta napad na spletno mesto, kraja identitete drugega uporabnika.
Kot smo že omenili, lahko z vbrizgom HTML zlonamerni uporabnik vbrizga celotno stran, ki bi bila prikazana končnemu uporabniku. Če bo končni uporabnik nato navedel svoje podatke za prijavo na lažni prijavni strani, jih bo poslal zlonamernemu uporabniku. Ta primer je seveda bolj tvegan del tega napada.
Omeniti je treba, da je za krajo podatkov drugih uporabnikov ta vrsta napada manj pogosto izbrana, saj obstaja veliko drugih možnih napadov.
Je pa zelo podoben napadu XSS, ki krade uporabnikove piškotke in identitete drugih uporabnikov. Obstajajo tudi napadi XSS, ki temeljijo na HTML-ju. Zato je testiranje proti napadom XSS in HTML morda zelo podobno in se izvaja skupaj.
Zaključek
Ker vbrizgavanje HTML ni tako priljubljeno kot drugi napadi, se lahko šteje za manj tvegano kot drugi napadi. Zato se testiranje proti tej vrsti injekcije včasih preskoči.
najboljši brezplačni čistilci registra za Windows 10
Opaziti je tudi, da je vsekakor manj literature in informacij o HTML Injection. Zato se preizkuševalci lahko odločijo, da ne bodo izvajali te vrste preskušanja. Vendar pa v tem primeru napadi HTML morda niso dovolj ocenjeni.
Kot smo analizirali v tej vadnici, lahko pri tej vrsti vbrizgavanja uniči celoten dizajn vašega spletnega mesta ali celo ukrade uporabniške podatke za prijavo. Zato je zelo priporočljivo, da vključite HTML Injection za preskušanje varnosti in vložite dobro znanje.
Ste že naleteli na kakšno tipično vbrizgavanje HTML-ja? Svoje izkušnje lahko delite v spodnjem oddelku za komentarje.
Priporočeno branje
- Vadnice za globinsko zasenčenje za začetnike
- Vadnica za testiranje vbrizgavanja SQL (primer in preprečevanje napada vbrizgavanja SQL)
- Vadnica Python DateTime s primeri
- Vadnica za napade pri skriptiranju spletnih mest (XSS) s primeri, vrstami in preprečevanjem
- Vadnica za vbrizgavanje JavaScript: Preizkusite in preprečite napade vbrizgavanja JS na spletnem mestu
- Vadnica za skriptiranje lupine Unix s primeri
- Vadnica za iskanje selena z besedilom s primeri
- Vadnica za glavne funkcije Pythona s praktičnimi primeri