html injection tutorial
Dubinski uvid u ubrizgavanje HTML-a:
Da bismo imali bolju percepciju HTML Injection-a, prvo bismo trebali znati što je HTML.
HTML je označni jezik, gdje su svi elementi web stranice zapisani u oznakama. Uglavnom se koristi za izradu web stranica. Web stranice se šalju pregledniku u obliku HTML dokumenata. Tada se ti HTML dokumenti pretvaraju u uobičajene web stranice i prikazuju krajnjim korisnicima.
Ovaj će vam vodič dati cjelovit pregled HTML Injection-a, njegovih vrsta i preventivnih mjera, zajedno s praktičnim primjerima u jednostavnim terminima za vaše lako razumijevanje koncepta.
Što ćete naučiti:
- Što je HTML Injection?
- Vrste ubrizgavanja HTML-a
- Kako se izvodi ubrizgavanje HTML-a?
- Kako testirati protiv ubrizgavanja HTML-a?
- Kako spriječiti ubrizgavanje HTML-a?
- Usporedba s drugim napadima
- Zaključak
- Preporučena literatura
Što je HTML Injection?
Suština ove vrste injekcijskog napada je ubrizgavanje HTML koda kroz ranjive dijelove web stranice. Zlonamjerni korisnik šalje HTML kôd kroz bilo koje ranjivo polje sa svrhom da promijeni dizajn web stranice ili bilo koje informacije koje se prikazuju korisniku.
Rezultat toga je da korisnik može vidjeti podatke koje je poslao zlonamjerni korisnik. Stoga je, općenito, HTML Injection samo ubrizgavanje koda označnog jezika u dokument stranice.
Podaci koji se šalju tijekom ove vrste napada injekcijom mogu biti vrlo različiti. To može biti nekoliko HTML oznaka koje će samo prikazati poslane informacije. Također, to može biti cijeli lažni obrazac ili stranica. Kada se dogodi ovaj napad, preglednik obično interpretira zlonamjerne korisničke podatke kao legitimne i prikazuje ih.
Promjena izgleda web stranice nije jedini rizik koji donosi ova vrsta napada. Prilično je sličan XSS napadu, gdje zlonamjerni korisnik krade identitete druge osobe. Stoga se tijekom napada s injekcijom može dogoditi i krađa identiteta druge osobe.
Vrste ubrizgavanja HTML-a
Čini se da ovaj napad nije teško razumjeti ili izvesti, jer se HTML smatra prilično jednostavnim jezikom. Međutim, postoje različiti načini za izvođenje ove vrste napada. Također možemo razlikovati različite vrste ove injekcije.
Prvo, različite vrste mogu se razvrstati prema rizicima koje donose.
Kao što je spomenuto, ovaj se injekcijski napad može izvesti u dvije različite svrhe:
- Da biste promijenili izgled prikazanog web mjesta.
- Da ukrade identitet druge osobe.
Također, ovaj se injekcijski napad može izvesti kroz različite dijelove web mjesta, tj. Polja za unos podataka i vezu na web mjestu.
Međutim, glavne vrste su:
- Pohranjeno HTML ubrizgavanje
- Reflected HTML Injection
# 1) Pohranjeno ubrizgavanje HTML-a:
Glavna razlika između te dvije vrste ubrizgavanja je u tome što se pohranjeni napad ubrizgavanjem događa kada se zlonamjerni HTML kôd spremi na web poslužitelj i izvršava se svaki put kada korisnik pozove odgovarajuću funkcionalnost.
Međutim, u slučaju reflektiranog napada ubrizgavanjem zlonamjerni HTML kôd nije trajno pohranjen na web poslužitelju. Reflected Injection se događa kada web mjesto odmah reagira na zlonamjerni unos.
# 2) Reflektirano ubrizgavanje HTML-a:
To se opet može podijeliti na više vrsta:
- Odraženi GET
- Odraženi POST
- Odraženi URL
Reflected Injection napad može se izvesti različito prema HTTP metodama, tj. GET i POST. Podsjetio bih, da se s metodom POST podaci šalju, a s metodom GET traže podaci.
Da bismo znali koja se metoda koristi za odgovarajuće elemente web stranice, možemo provjeriti izvor stranice.
Na primjer , tester može provjeriti izvorni kod za obrazac za prijavu i pronaći koja se metoda za njega koristi. Tada se može odabrati odgovarajuća metoda ubrizgavanja HTML.
Odražena GET injekcija dogodi se kada se naš unos prikazuje (odražava) na web mjestu. Pretpostavimo da imamo jednostavnu stranicu s obrascem za pretraživanje koji je ranjiv na ovaj napad. Zatim, ako bismo upisali bilo koji HTML kôd, on će se pojaviti na našoj web stranici i istodobno će se ubrizgati u HTML dokument.
Na primjer, unosimo jednostavan tekst s HTML oznakama:
Odraženo ubrizgavanje POST HTML-a je malo teže. To se događa kada se šalje zlonamjerni HTML kôd umjesto ispravnih parametara POST metode.
Na primjer , imamo obrazac za prijavu koji je ranjiv na HTML napad. Podaci upisani u obrazac za prijavu šalju se POST metodom. Zatim, ako bismo umjesto točnih parametara upisali bilo koji HTML kôd, on će biti poslan POST metodom i prikazan na web mjestu.
Da biste izvršili Reflected POST HTML napad, preporučuje se upotreba posebnog dodatka preglednika koji će lažirati poslane podatke. Jedan od njih je dodatak Mozilla Firefox 'Tamper Data'. Dodatak preuzima poslane podatke i omogućuje korisniku da ih promijeni. Tada se promijenjeni podaci šalju i prikazuju na web mjestu.
Na primjer, ako koristimo takav dodatak, poslali bismo isti HTML kôd ili kôd obrasca za pretraživanje, ako želite testirati s nečim složenijim Upišite tekst za pretraživanje
Ako se prikaže HTML kôd koji je negdje spremljen, tester može biti siguran da je ovaj napad ubrizgavanjem moguć. Tada se može isprobati složeniji kod - jer Primjer , za prikaz lažnog obrasca za prijavu.
Drugo rješenje je HTML Injection scanner. Automatsko skeniranje protiv ovog napada može vam uštedjeti puno vremena. Želio bih obavijestiti da nema mnogo alata za testiranje ubrizgavanja HTML-a u usporedbi s drugim napadima.
Međutim, jedno od mogućih rješenja je WAS aplikacija. WAS se može nazvati prilično jakim skenerom ranjivosti, jer se testira s različitim ulazima, a ne zaustavlja samo s prvim neuspjelim.
Korisno je za testiranje, možda kao što je spomenuto u gore navedenom dodatku za preglednik 'Tamper Data', on dobiva poslane podatke, omogućuje ispitivaču da ih promijeni i šalje u preglednik.
Također možemo pronaći neke mrežne alate za skeniranje, gdje morate pružiti samo vezu web stranice i izvršit će se skeniranje protiv HTML napada. Po završetku testiranja prikazat će se sažetak.
Želio bih komentirati da prilikom odabira alata za skeniranje moramo obratiti pažnju na to kako analizira rezultate i je li dovoljno točan ili ne.
Međutim, treba imati na umu da ručno testiranje ne treba zaboraviti. Na taj način možemo biti sigurni koji su točni ulazi isprobani i koje točno rezultate dobivamo. Također na ovaj način lakše je analizirati i rezultate.
program za nadzor CPU i GPU temp
Iz svog iskustva u karijeri testiranja softvera, želio bih komentirati da bismo za oba načina testiranja trebali dobro poznavati ovu vrstu ubrizgavanja. U suprotnom, bilo bi teško odabrati odgovarajući alat za automatizaciju i analizirati njegove rezultate. Također, uvijek se preporučuje da ne zaboravite testirati ručno, jer nas to samo čini sigurnijima u kvalitetu.
Kako spriječiti ubrizgavanje HTML-a?
Nema sumnje da je glavni razlog ovog napada nepažnja programera i nedostatak znanja. Ova vrsta napada ubrizgavanjem događa se kada ulaz i izlaz nisu valjano provjereni. Stoga je glavno pravilo za sprječavanje HTML napada odgovarajuća provjera podataka.
Svaki unos treba provjeriti sadrži li skriptni kod ili HTML kod. Obično se provjerava ako kôd sadrži neku posebnu skriptu ili HTML zagrade -,.
Postoji mnogo funkcija za provjeru sadrži li kôd neke posebne zagrade. Odabir funkcije provjere ovisi o programskom jeziku koji koristite.
Treba zapamtiti, to dobro sigurnosno ispitivanje je također dio prevencije. Želio bih obratiti pažnju da je, budući da je HTML Injection napad vrlo rijedak, manje literature o njemu i manje skenera za automatsko testiranje. Međutim, ovaj dio sigurnosnog testiranja zaista ne smijete propustiti jer nikad ne znate kada se to može dogoditi.
Također, i programer i ispitivač trebali bi dobro znati kako se izvodi ovaj napad. Dobro razumijevanje ovog postupka napada može vam pomoći u sprečavanju.
Usporedba s drugim napadima
U usporedbi s ostalim mogućim napadima, ovaj se napad definitivno neće smatrati toliko rizičnim kao SQL ubrizgavanje ili JavaScript Injection napad ili čak može biti XSS. Neće uništiti cijelu bazu podataka ili ukrasti sve podatke iz baze podataka. Međutim, ne treba ga smatrati beznačajnim.
Kao što je ranije spomenuto, glavna svrha ove vrste ubrizgavanja je mijenjanje izgleda prikazanog web mjesta sa zlonamjernom svrhom, prikazivanje vaših poslanih podataka ili podataka krajnjem korisniku. Ti se rizici mogu smatrati manje važnima.
Međutim, promjena izgleda web stranice može koštati reputacije vaše tvrtke. Ako bi zlonamjerni korisnik uništio izgled vašeg web mjesta, to bi moglo promijeniti mišljenje posjetitelja o vašoj tvrtki.
Treba imati na umu da je još jedan rizik koji ovaj napad na web stranicu donosi krađa identiteta drugog korisnika.
Kao što je spomenuto, s HTML Injectionom zlonamjerni korisnik može ubrizgati cijelu stranicu koja će biti prikazana krajnjem korisniku. Tada, ako će konačni korisnik svoje podatke za prijavu navesti na lažnoj stranici za prijavu, tada će biti poslani zlonamjernom korisniku. Ovaj je slučaj, naravno, rizičniji dio ovog napada.
Treba spomenuti da se za krađu podataka drugih korisnika ova vrsta napada rjeđe odabire, jer postoji puno drugih mogućih napada.
Međutim, vrlo je sličan XSS napadu koji krade korisničke kolačiće i identitete drugih korisnika. Postoje i XSS napadi koji se temelje na HTML-u. Stoga testiranje protiv XSS i HTML napada može biti vrlo slično i provodi se zajedno.
Zaključak
Kako HTML Injection nije toliko popularan kao drugi napadi, može se smatrati manje rizičnim od ostalih napada. Stoga se testiranje protiv ove vrste injekcija ponekad preskače.
Također, primjetno je da definitivno ima manje literature i informacija o HTML Injectionu. Stoga testeri mogu odlučiti da neće izvoditi ovu vrstu testiranja. Međutim, u ovom slučaju, HTML napadi možda nisu dovoljno procijenjeni.
Kao što smo analizirali u ovom vodiču, ovom vrstom ubrizgavanja cijeli dizajn vašeg web mjesta može biti uništen ili čak ukradeni korisnički podaci za prijavu. Stoga se preporuča uključiti HTML Injection u sigurnosno testiranje i uložiti dobro znanje.
Jeste li naišli na neko tipično HTML Injection? Slobodno podijelite svoja iskustva u odjeljku za komentare u nastavku.
Preporučena literatura
- Dubinski vodiči pomračenja za početnike
- Vodič za ispitivanje ubrizgavanja SQL (Primjer i sprečavanje napada na ubrizgavanje SQL)
- Python DateTime Vodič s primjerima
- Vodič za napade za skriptiranje na više lokacija (XSS) s primjerima, vrstama i prevencijom
- Vodič za ubrizgavanje JavaScript-a: Testirajte i spriječite JS-injekcije na web mjestu
- Vodič za skripte za Unix Shell sa primjerima
- Selen Pronađi element pomoću tekstualne lekcije s primjerima
- Vodič za glavne funkcije Pythona s praktičnim primjerima