html injection tutorial
En djupgående titt på HTML-injektion:
För att få en bättre uppfattning om HTML-injektion bör vi först veta vad HTML är.
HTML är ett markeringsspråk där alla webbplatsens element är skrivna i taggarna. Det används mest för att skapa webbplatser. Webbsidor skickas till webbläsaren i form av HTML-dokument. Sedan konverteras dessa HTML-dokument till vanliga webbplatser och visas för slutanvändarna.
Denna handledning ger dig en fullständig översikt över HTML-injektion, dess typer och förebyggande åtgärder tillsammans med praktiska exempel i enkla termer för att du enkelt ska förstå konceptet.
säker online-YouTube till mp3-omvandlare
Vad du kommer att lära dig:
- Vad är HTML-injektion?
- Typer av HTML-injektion
- Hur utförs HTML-injektion?
- Hur testar jag mot HTML-injektion?
- Hur förhindrar man HTML-injektion?
- Jämförelse med andra attacker
- Slutsats
- Rekommenderad läsning
Vad är HTML-injektion?
Kärnan i denna typ av injektionsattack är att injicera HTML-kod genom de sårbara delarna av webbplatsen. Den skadliga användaren skickar HTML-kod genom vilket sårbart fält som helst för att ändra webbplatsens design eller annan information som visas för användaren.
Som ett resultat kan användaren se data som skickades av den skadliga användaren. Därför är HTML-injektion i allmänhet bara injicering av kodningsspråk i dokumentet på sidan.
Data som skickas under denna typ av injektionsattack kan vara mycket olika. Det kan vara några HTML-taggar som bara visar den skickade informationen. Det kan också vara hela falska formuläret eller sidan. När denna attack inträffar tolkar webbläsaren vanligtvis skadlig användardata som legitim och visar den.
Att ändra en webbplats utseende är inte den enda risken som denna typ av attack medför. Det är ganska likt XSS-attacken, där den skadliga användaren stjäl andras identiteter. Därför kan stjäla en annan persons identitet också hända under denna injektionsattack.
Typer av HTML-injektion
Denna attack verkar inte vara särskilt svår att förstå eller utföra, eftersom HTML anses vara ett ganska enkelt språk. Det finns dock olika sätt att utföra denna typ av attack. Vi kan också urskilja olika typer av denna injektion.
För det första kan olika typer sorteras efter de risker som de medför.
Som nämnts kan denna injektionsattack utföras med två olika syften:
- För att ändra den visade webbplatsens utseende.
- Att stjäla en annans identitet.
Denna injektionsattack kan också utföras genom olika delar av webbplatsen, dvs. datainmatningsfält och webbplatsens länk.
Huvudtyperna är dock:
- Lagrad HTML-injektion
- Reflekterad HTML-injektion
# 1) Lagrad HTML-injektion:
Huvudskillnaden mellan dessa två injektionstyper är att lagrad injektionsattack inträffar när skadlig HTML-kod sparas på webbservern och körs varje gång när användaren ringer till en lämplig funktion.
I det reflekterade injektionsattackfallet lagras dock inte skadlig HTML-kod permanent på webbservern. Reflected Injection inträffar när webbplatsen omedelbart svarar på den skadliga inmatningen.
# 2) Reflekterad HTML-injektion:
Detta kan återigen delas in i fler typer:
- Reflekterad GET
- Reflekterad POST
- Reflekterad URL
Reflected Injection attack kan utföras olika enligt HTTP-metoderna, dvs GET och POST. Jag påminner om att med POST-metoden skickas data och med GET-metoden begärs data.
För att veta vilken metod som används för lämpliga webbplatselement kan vi kontrollera källan till sidan.
Till exempel , en testare kan kontrollera källkoden för inloggningsformuläret och hitta vilken metod som används för det. Därefter kan lämplig HTML-injektionsmetod väljas i enlighet med detta.
Reflekterad GET-injektion inträffar när vår information visas (reflekteras) på webbplatsen. Antag att vi har en enkel sida med ett sökformulär som är sårbart för denna attack. Om vi sedan skriver någon HTML-kod kommer den att visas på vår webbplats och samtidigt kommer den att injiceras i HTML-dokumentet.
Till exempel anger vi enkel text med HTML-taggar:
Reflekterad POST HTML-injektion är lite svårare. Det inträffar när en skadlig HTML-kod skickas istället för korrekta POST-metodparametrar.
c ++ slumpmässigt tal mellan 0 och 10
Till exempel , Vi har ett inloggningsformulär som är sårbart för HTML-attack. Data som skrivs in i inloggningsformuläret skickas med POST-metoden. Om vi sedan skriver någon HTML-kod istället för rätt parametrar skickas den med POST-metoden och visas på webbplatsen.
För att utföra Reflected POST HTML-attack rekommenderas att du använder en speciell webbläsares plugin, som förfalskar de skickade data. En av det är Mozilla Firefox plugin 'Tamper Data'. Plugin tar över de skickade uppgifterna och låter användaren ändra det. Sedan skickas ändrade data och visas på webbplatsen.
Till exempel, om vi använder ett sådant plugin skulle vi skicka samma HTML-kod eller sökformulärkod, om du vill testa med något mer komplicerat Skriv text för att söka
Om en HTML-kod som sparas någonstans visas kan testaren vara säker på att denna injektionsattack är möjlig. Då kan en mer komplicerad kod prövas - för Exempel , för att visa det falska inloggningsformuläret.
En annan lösning är HTML Injection scanner. Att skanna automatiskt mot denna attack kan spara mycket tid. Jag vill meddela att det inte finns många verktyg för HTML-injektionstest jämfört med andra attacker.
En möjlig lösning är dock WAS-applikationen. WAS kan namnges som en ganska stark sårbarhetsskanner, eftersom den testar med olika ingångar och inte bara slutar med den första misslyckade.
Det är användbart för testning, kanske som nämnts i ovanstående webbläsarplugg 'Tamper Data', det får skickade data, låter testaren ändra det och skickar till webbläsaren.
Vi kan också hitta några online-skanningsverktyg, där du bara behöver ange webbplatsens länk och skanning mot HTML-attack kommer att utföras. När testningen är klar visas sammanfattningen.
Jag vill kommentera att när vi väljer ett skanningsverktyg måste vi vara uppmärksamma på hur det analyserar resultaten och är det tillräckligt noggrant eller inte.
Man bör dock komma ihåg att testning manuellt inte bör glömmas bort. På det här sättet kan vi vara säkra på vilka exakta ingångar som provas och vilka exakta resultat vi får. Det är också lättare att analysera resultaten också.
Av min erfarenhet av en programvarutestningskarriär vill jag kommentera att vi för båda testmetoderna borde ha god kunskap om denna typ av injektion. Annars skulle det vara svårt att välja ett lämpligt automatiseringsverktyg och analysera dess resultat. Det rekommenderas alltid att inte glömma att testa manuellt, eftersom det bara gör oss mer säkra på kvaliteten.
Hur förhindrar man HTML-injektion?
Det råder inga tvivel om att huvudorsaken till denna attack är utvecklarens ouppmärksamhet och brist på kunskap. Denna typ av injektionsattack inträffar när input och output inte valideras korrekt. Därför är huvudregeln för att förhindra HTML-attack lämplig datavalidering.
hur man visar bin-filer på Android
Varje ingång ska kontrolleras om den innehåller någon skriptkod eller någon HTML-kod. Vanligtvis kontrolleras det om koden innehåller något speciellt skript eller HTML-parenteser -,.
Det finns många funktioner för att kontrollera om koden innehåller några speciella parenteser. Valet av kontrollfunktion beror på det programmeringsspråk du använder.
Det bör komma ihåg, så bra säkerhetstestning är också en del av förebyggandet. Jag vill uppmärksamma att eftersom HTML-injektionsattack är mycket sällsynt finns det mindre litteratur att lära sig om det och mindre skanner att välja för automatisk testning. Den här delen av säkerhetstesterna bör dock inte missas, eftersom du aldrig vet när det kan hända.
Både utvecklaren och testaren bör också ha god kunskap om hur denna attack utförs. God förståelse för denna attackprocess kan bidra till att förhindra den.
Jämförelse med andra attacker
Jämfört med de andra möjliga attackerna kommer denna attack definitivt inte att anses vara så riskabel som SQL-injektion eller JavaScript-injektionsattack eller till och med XSS kan vara. Det förstör inte hela databasen eller stjäl all information från databasen. Det bör dock inte betraktas som obetydligt.
Som nämnts tidigare är huvudsyftet med denna typ av injektion att ändra den visade webbplatsens utseende med skadligt syfte och visa din skickade information eller data för slutanvändaren. Dessa risker kan betraktas som mindre viktiga.
Att ändra webbplatsens utseende kan dock kosta ditt företags rykte. Om en skadlig användare skulle förstöra din webbplats utseende kan det ändra besökarens åsikter om ditt företag.
Man bör komma ihåg att en annan risk, som denna attack på webbplatsen medför, är att stjäla andra användares identitet.
Som nämnts kan den skadliga användaren med HTML-injektion injicera hela sidan, som skulle visas för slutanvändaren. Om den slutliga användaren sedan anger sin inloggningsinformation på den falska inloggningssidan kommer den att skickas till den skadliga användaren. Detta fall är naturligtvis den mer riskfyllda delen av denna attack.
Det bör nämnas att för att stjäla andra användares data så väljs denna typ av attack mindre ofta, eftersom det finns många andra möjliga attacker.
Det liknar dock mycket XSS-attacken, som stjäl användarens kakor och andra användares identiteter. Det finns också XSS-attacker, som är HTML-baserade. Testning mot XSS och HTML-attack kan därför vara mycket lika och utföras tillsammans.
Slutsats
Eftersom HTML-injektion inte är lika populär som andra attacker kan det anses vara mindre riskabelt än andra attacker. Testet mot denna typ av injektion hoppas därför ibland över.
Det märks också att det definitivt finns mindre litteratur och information om HTML-injektion. Därför kan testare besluta att inte utföra denna typ av testning. I det här fallet kan HTML-attackrisker kanske inte utvärderas tillräckligt.
Som vi har analyserat i denna handledning kan med denna typ av injektion hela din webbplats design förstöras eller till och med användarens inloggningsdata kan stulas. Därför rekommenderas det att inkludera HTML-injektion i säkerhetstester och investera god kunskap.
Har du stött på någon typisk HTML-injektion? Dela gärna dina erfarenheter i kommentarfältet nedan.
Rekommenderad läsning
- Fördjupade förklaringar om förmörkelser för nybörjare
- SQL Injection Testing Tutorial (Exempel och förebyggande av SQL Injection Attack)
- Python DateTime-handledning med exempel
- Cross Site Scripting (XSS) Attack Tutorial med exempel, typer och förebyggande
- JavaScript-injektionshandledning: Testa och förhindra JS-injektionsattacker på webbplatsen
- Unix Shell Scripting Tutorial med exempel
- Selen Find Element by Text Tutorial med exempel
- Pythons huvudfunktionshandledning med praktiska exempel