html injection tutorial
Et dybtgående kig på HTML-injektion:
For at få en bedre opfattelse af HTML-injektion skal vi først vide, hvad HTML er.
HTML er et markup-sprog, hvor alle webstedselementer er skrevet i tags. Det bruges mest til oprettelse af websteder. Websider sendes til browseren i form af HTML-dokumenter. Derefter konverteres disse HTML-dokumenter til normale websteder og vises for de endelige brugere.
Denne vejledning giver dig et komplet overblik over HTML-injektion, dens typer og forebyggende foranstaltninger sammen med praktiske eksempler i enkle termer for din nemme forståelse af konceptet.
Hvad du vil lære:
- Hvad er HTML-injektion?
- Typer af HTML-injektion
- Hvordan udføres HTML-injektion?
- Sådan tester du mod HTML-injektion?
- Sådan forhindres HTML-injektion?
- Sammenligning med andre angreb
- Konklusion
- Anbefalet læsning
Hvad er HTML-injektion?
Essensen af denne type injektionsangreb er at indsprøjte HTML-kode gennem de sårbare dele af hjemmesiden. Den ondsindede bruger sender HTML-kode gennem ethvert sårbart felt med det formål at ændre webstedsdesignet eller de oplysninger, der vises for brugeren.
I resultatet kan brugeren muligvis se de data, der blev sendt af den ondsindede bruger. Derfor er HTML-injektion generelt kun indsprøjtning af markup-sprogkode til dokumentet på siden.
Data, der sendes under denne type injektionsangreb, kan være meget forskellige. Det kan være et par HTML-tags, der bare viser de sendte oplysninger. Det kan også være hele den falske form eller side. Når dette angreb opstår, fortolker browseren normalt ondsindede brugerdata som legitime og viser dem.
At ændre et websteds udseende er ikke den eneste risiko, som denne type angreb medfører. Det svarer meget til XSS-angrebet, hvor den ondsindede bruger stjæler andres identiteter. Derfor kan stjæle en anden persons identitet også ske under dette injektionsangreb.
Typer af HTML-injektion
Dette angreb ser ikke ud til at være meget vanskeligt at forstå eller udføre, da HTML betragtes som et ret simpelt sprog. Der er dog forskellige måder at udføre denne type angreb på. Vi kan også skelne mellem forskellige typer af denne injektion.
For det første kan forskellige typer sorteres efter de risici, de medfører.
Som nævnt kan dette injektionsangreb udføres med to forskellige formål:
- For at ændre det viste websteds udseende.
- At stjæle en anden persons identitet.
Dette injektionsangreb kan også udføres gennem forskellige dele af hjemmesiden, dvs. dataindtastningsfelter og websitens link.
Imidlertid er hovedtyperne:
hvad er den bedste app til download af musik til Android
- Gemt HTML-injektion
- Reflekteret HTML-injektion
# 1) Gemt HTML-injektion:
Hovedforskellen mellem disse to injektionstyper er, at lagret injektionsangreb opstår, når ondsindet HTML-kode gemmes på webserveren og udføres hver gang, når brugeren kalder en passende funktionalitet.
I den reflekterede indsprøjtningsangrebssag gemmes ondsindet HTML-kode imidlertid ikke permanent på webserveren. Reflected Injection opstår, når webstedet straks reagerer på det ondsindede input.
# 2) Reflekteret HTML-injektion:
Dette kan igen opdeles i flere typer:
manuel test interview spørgsmål og svar til erfarne
- Reflekteret GET
- Reflekteret POST
- Reflekteret URL
Reflekteret injektionsangreb kan udføres forskelligt i henhold til HTTP-metoderne, dvs. GET og POST. Jeg vil minde om, at der sendes data med POST, og med GET-metode anmodes der om data.
For at vide, hvilken metode der bruges til passende webstedselementer, kan vi kontrollere kilden til siden.
For eksempel , en tester kan kontrollere kildekoden til loginformularen og finde ud af, hvilken metode der bruges til den. Derefter kan passende HTML-injektionsmetode vælges i overensstemmelse hermed.
Reflekteret GET-injektion opstår, når vores input vises (reflekteres) på hjemmesiden. Antag, vi har en enkel side med en søgeformular, der er sårbar over for dette angreb. Så hvis vi skriver en hvilken som helst HTML-kode, vises den på vores websted, og på samme tid injiceres den i HTML-dokumentet.
For eksempel indtaster vi simpel tekst med HTML-tags:
Reflekteret POST HTML-injektion er lidt sværere. Det sker, når der sendes en ondsindet HTML-kode i stedet for de korrekte POST-metodeparametre.
For eksempel , vi har en loginformular, der er sårbar over for HTML-angreb. Data indtastet i loginformularen sendes med POST-metoden. Derefter, hvis vi skriver en HTML-kode i stedet for de korrekte parametre, sendes den med POST-metoden og vises på hjemmesiden.
For at udføre Reflected POST HTML-angreb anbefales det at bruge en speciel browsers plugin, der falsker de sendte data. En af det er Mozilla Firefox plugin “Tamper Data”. Pluginet overtager de sendte data og giver brugeren mulighed for at ændre dem. Derefter sendes ændrede data og vises på hjemmesiden.
For eksempel, hvis vi bruger et sådant plugin, så sender vi den samme HTML-kode eller søg formularkode, hvis du vil teste med noget mere kompliceret Skriv tekst for at søge
Hvis der vises en HTML-kode, der gemmes et eller andet sted, kan testeren være sikker på, at dette injektionsangreb er muligt. Så kan en mere kompliceret kode blive prøvet - for Eksempel , for at vise den falske loginformular.
En anden løsning er HTML Injection scanner. Scanning automatisk mod dette angreb kan spare meget tid. Jeg vil gerne meddele, at der ikke er mange værktøjer til HTML-injektionstest i sammenligning med andre angreb.
En mulig løsning er imidlertid WAS-applikation. WAS kan navngives som en ganske stærk sårbarhedsscanner, da den tester med de forskellige input og ikke bare stopper med den første mislykkede.
Det er nyttigt til test, måske som nævnt i ovennævnte browser plugin “Tamper Data”, det får sendte data, giver testeren mulighed for at ændre det og sender til browseren.
Vi kan også finde nogle online scanningsværktøjer, hvor du kun skal angive webstedets link, og scanning mod HTML-angreb udføres. Når testen er afsluttet, vises resuméet.
Jeg vil gerne kommentere, at når vi vælger et scanningsværktøj, skal vi være opmærksomme på, hvordan det analyserer resultaterne, og er det nøjagtigt eller ej.
Det skal dog huskes, at manuel test ikke bør glemmes. På denne måde kan vi være sikre på, hvilke nøjagtige input der er prøvet, og hvilke nøjagtige resultater vi får. Også på denne måde er det også lettere at analysere resultaterne.
Ud af min erfaring i en karriere med softwaretestning vil jeg gerne kommentere, at vi for begge testmåder skal have godt kendskab til denne type injektion. Ellers ville det være svært at vælge et passende automatiseringsværktøj og analysere dets resultater. Det anbefales også altid ikke at glemme at teste manuelt, da det bare gør os mere sikre på kvaliteten.
Sådan forhindres HTML-injektion?
Der er ingen tvivl om, at hovedårsagen til dette angreb er udviklerens uopmærksomhed og manglende viden. Denne type injektionsangreb opstår, når input og output ikke valideres korrekt. Derfor er hovedreglen for at forhindre HTML-angreb passende datavalidering.
Hvert input skal kontrolleres, hvis det indeholder en script-kode eller en HTML-kode. Normalt kontrolleres det, hvis koden indeholder et specielt script eller HTML-parentes -,.
Der er mange funktioner til kontrol af, om koden indeholder specielle parenteser. Valg af kontrolfunktion afhænger af det programmeringssprog, du bruger.
Det skal huskes, det gode sikkerhedstest er også en del af forebyggelse. Jeg vil gerne være opmærksom på, at da HTML-injektionsangreb er meget sjældent, er der mindre litteratur at lære om det og mindre scanner at vælge til automatisk test. Imidlertid bør denne del af sikkerhedstest virkelig ikke gå glip af, da du aldrig ved, hvornår det kan ske.
Både udvikleren og testeren skal også have godt kendskab til, hvordan dette angreb udføres. God forståelse af denne angrebsproces kan hjælpe med at forhindre den.
Sammenligning med andre angreb
Sammenlignet med de andre mulige angreb betragtes dette angreb bestemt ikke så risikabelt som SQL-injektion eller JavaScript-injektionsangreb eller endda XSS kan være. Det ødelægger ikke hele databasen eller stjæler alle data fra databasen. Det skal dog ikke betragtes som ubetydeligt.
Som nævnt tidligere er hovedformålet med denne type injektion at ændre det viste websteds udseende med ondsindet formål og vise dine sendte oplysninger eller data til den endelige bruger. Disse risici kan betragtes som mindre vigtige.
Ændret websteds udseende kan dog koste din virksomheds omdømme. Hvis en ondsindet bruger ødelægger dit websteds udseende, kan det ændre den besøgendes meninger om din virksomhed.
Det skal huskes, at en anden risiko, som dette angreb på websitet medfører, er at stjæle anden brugers identitet.
Som nævnt kan den ondsindede bruger med HTML-injektion injicere hele siden, der vises for den endelige bruger. Derefter, hvis den endelige bruger vil angive sine login-data på den falske login-side, vil de blive sendt til den ondsindede bruger. Denne sag er selvfølgelig den mere risikable del af dette angreb.
Det skal nævnes, at denne type angreb er sjældnere valgt for at stjæle andre brugers data, da der er mange andre mulige angreb.
Det ligner dog meget XSS-angrebet, der stjæler brugerens cookies og andre brugeres identiteter. Der er også XSS-angreb, som er HTML-baserede. Derfor kan test mod XSS og HTML-angreb være meget ens og udføres sammen.
gratis dvd-ripper til Windows 7
Konklusion
Da HTML-injektion ikke er så populær som andre angreb, kan det betragtes som mindre risikabelt end andre angreb. Derfor springes der undertiden over test mod denne type injektion.
Det bemærkes også, at der bestemt er mindre litteratur og information om HTML-injektion. Derfor kan testere beslutte ikke at udføre denne type test. I dette tilfælde er HTML-angrebsrisici måske ikke evalueret nok.
Som vi har analyseret i denne vejledning, kan hele din websides design med denne type injektion ødelægges, eller endda brugerens logindata kan blive stjålet. Derfor anbefales det stærkt at inkludere HTML-injektion i sikkerhedstest og investere god viden.
Har du stødt på nogen typisk HTML-injektion? Del gerne dine oplevelser i kommentarfeltet nedenfor.
Anbefalet læsning
- Dybdegående formørkelsesvejledninger til begyndere
- SQL Injection Testing Tutorial (Eksempel og forebyggelse af SQL Injection Attack)
- Python DateTime-tutorial med eksempler
- Cross Site Scripting (XSS) Attack Tutorial med eksempler, typer og forebyggelse
- JavaScript-injektionsvejledning: Test og forhindre JS-injektionsangreb på webstedet
- Unix Shell Scripting Tutorial med eksempler
- Selen Find Element by Text Tutorial med eksempler
- Pythons hovedfunktionsvejledning med praktiske eksempler