html injection tutorial
Een diepgaande blik op HTML-injectie:
Om een betere perceptie van HTML-injectie te krijgen, moeten we eerst weten wat HTML is.
HTML is een opmaaktaal, waarbij alle elementen van de website in de tags worden geschreven. Het wordt meestal gebruikt voor het maken van websites. Webpagina's worden in de vorm van HTML-documenten naar de browser gestuurd. Vervolgens worden die HTML-documenten omgezet naar normale websites en weergegeven voor de eindgebruikers.
Deze tutorial geeft je een compleet overzicht van HTML Injection, de typen en preventieve maatregelen, samen met praktische voorbeelden in eenvoudige bewoordingen voor een gemakkelijk begrip van het concept.
software om je tube-video's te downloaden
Wat je leert:
- Wat is HTML-injectie?
- Typen HTML-injectie
- Hoe wordt HTML-injectie uitgevoerd?
- Hoe te testen tegen HTML-injectie?
- Hoe HTML-injectie te voorkomen?
- Vergelijking met andere aanvallen
- Gevolgtrekking
- Aanbevolen literatuur
Wat is HTML-injectie?
De essentie van dit type injectie-aanval is het injecteren van HTML-code via de kwetsbare delen van de website. De kwaadwillende gebruiker stuurt HTML-code door elk kwetsbaar veld met als doel het ontwerp van de website of enige informatie die aan de gebruiker wordt getoond, te wijzigen.
In het resultaat kan de gebruiker de gegevens zien die door de kwaadwillende gebruiker zijn verzonden. Daarom is HTML-injectie in het algemeen slechts de injectie van opmaaktaalcode in het document van de pagina.
De gegevens die tijdens dit type injectie-aanval worden verzonden, kunnen heel verschillend zijn. Het kunnen een paar HTML-tags zijn die alleen de verzonden informatie weergeven. Het kan ook het hele nepformulier of de pagina zijn. Wanneer deze aanval plaatsvindt, interpreteert de browser kwaadwillende gebruikersgegevens meestal als legitiem en geeft deze weer.
Het veranderen van het uiterlijk van een website is niet het enige risico dat dit type aanval met zich meebrengt. Het lijkt veel op de XSS-aanval, waarbij de kwaadwillende gebruiker de identiteit van een ander steelt. Daarom kan het stelen van de identiteit van iemand anders ook gebeuren tijdens deze injectie-aanval.
Typen HTML-injectie
Deze aanval lijkt niet erg moeilijk te begrijpen of uit te voeren, aangezien HTML als een vrij eenvoudige taal wordt beschouwd. Er zijn echter verschillende manieren om dit type aanval uit te voeren. We kunnen ook verschillende soorten van deze injectie onderscheiden.
Ten eerste kunnen verschillende soorten worden gesorteerd op de risico's die ze met zich meebrengen.
Zoals vermeld, kan deze injectie-aanval worden uitgevoerd met twee verschillende doeleinden:
- Om het uiterlijk van de weergegeven website te wijzigen.
- Om de identiteit van iemand anders te stelen.
Deze injectie-aanval kan ook worden uitgevoerd via verschillende delen van de website, d.w.z. gegevensinvoervelden en de link naar de website.
De belangrijkste soorten zijn echter:
- Opgeslagen HTML-injectie
- Gereflecteerde HTML-injectie
# 1) Opgeslagen HTML-injectie:
Het belangrijkste verschil tussen deze twee injectietypes is dat een opgeslagen injectieaanval plaatsvindt wanneer kwaadaardige HTML-code wordt opgeslagen op de webserver en wordt uitgevoerd telkens wanneer de gebruiker een geschikte functionaliteit aanroept.
In het geval van een gereflecteerde injectie-aanval wordt kwaadaardige HTML-code echter niet permanent op de webserver opgeslagen. Reflected Injection vindt plaats wanneer de website onmiddellijk reageert op de kwaadwillende invoer.
# 2) Gereflecteerde HTML-injectie:
Dit kan weer worden onderverdeeld in meer soorten:
- Weerspiegeld GET
- Weerspiegelde POST
- Weerspiegelde URL
Reflected Injection-aanval kan anders worden uitgevoerd volgens de HTTP-methoden, d.w.z. GET en POST. Ik herinner eraan dat met de POST-methode gegevens worden verzonden en met de GET-methode worden gegevens opgevraagd.
Om te weten welke methode wordt gebruikt voor de juiste website-elementen, kunnen we de bron van de pagina controleren.
Bijvoorbeeld een tester kan de broncode voor het inlogformulier controleren en zien welke methode daarvoor wordt gebruikt. Vervolgens kan de juiste HTML-injectiemethode dienovereenkomstig worden geselecteerd.
Gereflecteerde KRIJG injectie treedt op wanneer onze input wordt weergegeven (weerspiegeld) op de website. Stel dat we een eenvoudige pagina hebben met een zoekformulier, dat kwetsbaar is voor deze aanval. Als we dan een HTML-code zouden typen, zal deze op onze website verschijnen en tegelijkertijd in het HTML-document worden geïnjecteerd.
We voeren bijvoorbeeld eenvoudige tekst in met HTML-tags:
Gereflecteerde POST HTML-injectie is een beetje moeilijker. Het treedt op wanneer een kwaadaardige HTML-code wordt verzonden in plaats van de juiste POST-methodeparameters.
Bijvoorbeeld we hebben een inlogformulier, dat kwetsbaar is voor HTML-aanvallen. Gegevens die in het inlogformulier zijn getypt, worden verzonden met de POST-methode. Als we vervolgens een HTML-code zouden typen in plaats van de juiste parameters, dan wordt deze met de POST-methode verzonden en op de website weergegeven.
Om een Reflected POST HTML-aanval uit te voeren, wordt aanbevolen om een speciale browserplug-in te gebruiken, die de verzonden gegevens vervalst. Een daarvan is de Mozilla Firefox-plug-in 'Tamper Data'. De plug-in neemt de verzonden gegevens over en stelt de gebruiker in staat deze te wijzigen. Vervolgens worden gewijzigde gegevens verzonden en weergegeven op de website.
Bijvoorbeeld, als we zo'n plug-in gebruiken, sturen we dezelfde HTML-code of zoek formuliercode, als u iets gecompliceerder wilt testen Typ tekst om te zoeken Als ergens een HTML-code wordt weergegeven die wordt opgeslagen, kan de tester er zeker van zijn dat deze injectie-aanval mogelijk is. Dan kan een meer gecompliceerde code worden geprobeerd - voor Voorbeeld , om het valse aanmeldingsformulier weer te geven. Een andere oplossing is de HTML-injectiescanner. Automatisch scannen tegen deze aanval kan u veel tijd besparen. Ik wil erop wijzen dat er niet veel tools zijn voor het testen van HTML-injectie in vergelijking met andere aanvallen. Een mogelijke oplossing is echter de WAS-toepassing. WAS kan worden genoemd als een vrij sterke scanner voor kwetsbaarheden, omdat het test met de verschillende ingangen en niet alleen stopt met de eerste mislukte. Het is handig voor het testen, misschien zoals vermeld in de bovenstaande browserplug-in 'Tamper Data', het ontvangt verzonden gegevens, stelt de tester in staat deze te wijzigen en verzendt het naar de browser. We kunnen ook enkele online scantools vinden, waarbij u alleen de link van de website hoeft op te geven en er wordt gescand tegen HTML-aanvallen. Als het testen is voltooid, wordt de samenvatting weergegeven. Ik zou graag willen opmerken dat we bij het selecteren van een scantool moeten letten op hoe deze de resultaten analyseert en of deze nauwkeurig genoeg is of niet. Houd er echter rekening mee dat handmatig testen niet mag worden vergeten. Op deze manier kunnen we er zeker van zijn welke exacte invoer wordt geprobeerd en welke exacte resultaten we krijgen. Ook op deze manier is het ook gemakkelijker om de resultaten te analyseren. Vanuit mijn ervaring in een carrière in het testen van software, zou ik willen opmerken dat we voor beide testmethoden goede kennis moeten hebben van dit type injectie. Anders zou het moeilijk zijn om een geschikte automatiseringstool te selecteren en de resultaten ervan te analyseren. Het is ook altijd aan te raden om niet te vergeten handmatig te testen, omdat het ons alleen maar zekerder maakt over de kwaliteit. Het lijdt geen twijfel dat de belangrijkste reden voor deze aanval de onoplettendheid en het gebrek aan kennis van de ontwikkelaar is. Dit type injectie-aanval vindt plaats wanneer de invoer en uitvoer niet correct worden gevalideerd. Daarom is de belangrijkste regel om HTML-aanvallen te voorkomen, geschikte gegevensvalidatie. Elke invoer moet worden gecontroleerd of deze scriptcode of HTML-code bevat. Meestal wordt er gecontroleerd of de code een speciaal script of HTML-haakjes bevat -,. Er zijn veel functies om te controleren of de code speciale haakjes bevat. Selectie van controlefunctie is afhankelijk van de programmeertaal die u gebruikt. Het moet worden onthouden, zo goed beveiligingstesten is ook een onderdeel van preventie. Ik zou erop willen letten dat, aangezien HTML Injection-aanvallen zeer zeldzaam zijn, er minder literatuur is om erover te leren en minder scanner om te selecteren voor automatisch testen. Dit deel van de beveiligingstests mag echter echt niet worden gemist, omdat u nooit weet wanneer het kan gebeuren. Ook moeten zowel de ontwikkelaar als de tester een goede kennis hebben van hoe deze aanval wordt uitgevoerd. Een goed begrip van dit aanvalsproces kan dit helpen voorkomen. In vergelijking met de andere mogelijke aanvallen zal deze aanval zeker niet als zo riskant worden beschouwd SQL injectie of JavaScript-injectie-aanval of zelfs XSS kan zijn. Het zal niet de hele database vernietigen of alle gegevens uit de database stelen. Het mag echter niet als onbeduidend worden beschouwd. Zoals eerder vermeld, is het belangrijkste doel van dit type injectie het uiterlijk van de weergegeven website met een kwaadwillig doel te wijzigen, door uw verzonden informatie of gegevens weer te geven aan de eindgebruiker. Die risico's kunnen als minder belangrijk worden beschouwd. Het veranderen van het uiterlijk van de website kan echter de reputatie van uw bedrijf schaden. Als een kwaadwillende gebruiker het uiterlijk van uw website zou vernietigen, kan dit de mening van de bezoeker over uw bedrijf veranderen. Er moet aan worden herinnerd dat een ander risico dat deze aanval op de website met zich meebrengt, het stelen van de identiteit van andere gebruikers is. Zoals eerder vermeld, kan de kwaadwillende gebruiker met HTML-injectie de hele pagina injecteren, die wordt weergegeven voor de eindgebruiker. Als de eindgebruiker vervolgens zijn inloggegevens op de nep-inlogpagina aangeeft, worden deze naar de kwaadwillende gebruiker gestuurd. Deze zaak is natuurlijk het meest risicovolle deel van deze aanval. Opgemerkt moet worden dat voor het stelen van gegevens van andere gebruikers, dit type aanval minder vaak wordt geselecteerd, omdat er veel andere mogelijke aanvallen zijn. Het lijkt echter sterk op de XSS-aanval, die de cookies van de gebruiker en de identiteit van andere gebruikers steelt. Er zijn ook XSS-aanvallen, die op HTML zijn gebaseerd. Daarom kunnen testen tegen XSS- en HTML-aanvallen erg op elkaar lijken en samen worden uitgevoerd. Omdat HTML-injectie niet zo populair is als andere aanvallen, kan het als minder riskant worden beschouwd dan andere aanvallen. Daarom wordt het testen tegen dit type injectie soms overgeslagen. Ook valt op dat er beslist minder literatuur en informatie is over HTML Injection. Daarom kunnen testers besluiten om dit type testen niet uit te voeren. In dit geval zijn de risico's van HTML-aanvallen misschien niet voldoende geëvalueerd. Zoals we in deze tutorial hebben geanalyseerd, kan met dit type injectie het hele ontwerp van uw website worden vernietigd of kunnen zelfs de inloggegevens van de gebruiker worden gestolen. Daarom wordt het ten zeerste aanbevolen om HTML-injectie op te nemen in beveiligingstests en om goede kennis te investeren. Bent u een typische HTML-injectie tegengekomen? Deel gerust uw ervaringen in de commentaren hieronder. Hoe HTML-injectie te voorkomen?
Vergelijking met andere aanvallen
Gevolgtrekking
Aanbevolen literatuur