cross site scripting attack tutorial with examples
Een complete gids voor Cross Site Scripting (XSS) -aanvallen, hoe deze te voorkomen en XSS-testen.
Cross Site Scripting (XSS) is een van de meest populaire en kwetsbare aanvallen die elke geavanceerde tester kent. Het wordt beschouwd als een van de meest risicovolle aanvallen voor webapplicaties en kan ook schadelijke gevolgen hebben.
XSS wordt vaak vergeleken met gelijkaardige client-side aanvallen, aangezien client-side talen meestal gebruikt worden tijdens deze aanval. Een XSS-aanval wordt echter als riskanter beschouwd, omdat het zelfs minder kwetsbare technologieën kan beschadigen.
In deze XSS-aanvalstutorial geven we u een compleet overzicht van de typen, tools en preventieve maatregelen met perfecte voorbeelden in eenvoudige bewoordingen zodat u ze gemakkelijk kunt begrijpen.
Wat je leert:
- Inleiding tot XSS Attack
- Hoe wordt XSS uitgevoerd?
- Soorten cross-site scripting-aanvallen
- Hoe te testen tegen XSS?
- XSS-testtools
- Vergelijking met andere aanvallen
- Manieren om XSS te voorkomen
- Preventie volgens technologieën
- XSS-spiekbriefjes
- Gevolgtrekking
- Aanbevolen literatuur
Inleiding tot XSS Attack
Cross Site Scripting-aanval is een kwaadaardige code-injectie, die wordt uitgevoerd in de browser van het slachtoffer. Schadelijk script kan op de webserver worden opgeslagen en elke keer dat de gebruiker de juiste functionaliteit aanroept, worden uitgevoerd. Het kan ook worden uitgevoerd met de andere methoden - zonder enig opgeslagen script op de webserver.
Het belangrijkste doel van deze aanval is om de identiteitsgegevens van de andere gebruiker te stelen: cookies, sessietokens en andere informatie. In de meeste gevallen wordt deze aanval gebruikt om de cookies van de ander te stelen. Zoals we weten, helpen cookies ons om automatisch in te loggen. Daarom kunnen we bij gestolen cookies inloggen met de andere identiteiten. En dit is een van de redenen waarom deze aanval wordt beschouwd als een van de meest risicovolle aanvallen.
XSS-aanval wordt uitgevoerd aan de clientzijde. Het kan worden uitgevoerd met verschillende programmeertalen aan de clientzijde. Meestal wordt deze aanval echter uitgevoerd met Javascript en HTML.
Aanbevolen om te lezen Zelfstudie over HTML-injectie
Hoe wordt XSS uitgevoerd?
Cross Site Scripting-aanval betekent het verzenden en injecteren van schadelijke code of script. Schadelijke code wordt meestal geschreven met programmeertalen aan de clientzijde, zoals Javascript, HTML, VBScript , Flash, etc. Javascript en HTML worden echter meestal gebruikt om deze aanval uit te voeren.
Deze aanval kan op verschillende manieren worden uitgevoerd. Afhankelijk van het type XSS-aanval kan het kwaadaardige script worden weergegeven in de browser van het slachtoffer of opgeslagen in de database en elke keer worden uitgevoerd wanneer de gebruiker de juiste functie aanroept.
De belangrijkste reden voor deze aanval is de onjuiste validatie van gebruikersinvoer, waarbij kwaadwillende invoer in de uitvoer kan komen. Een kwaadwillende gebruiker kan een script invoeren dat in de code van de website wordt geïnjecteerd. De browser kan dan niet weten of de uitgevoerde code kwaadaardig is of niet.
Daarom wordt een kwaadaardig script uitgevoerd in de browser van het slachtoffer of wordt een nepformulier weergegeven voor de gebruikers. Er zijn verschillende vormen waarin XSS-aanvallen kunnen plaatsvinden.
De belangrijkste vormen van Cross Site Scripting zijn als volgt:
- Cross Site Scripting kan voorkomen op het kwaadaardige script dat aan de clientzijde wordt uitgevoerd.
- Valse pagina of formulier dat aan de gebruiker wordt getoond (waar het slachtoffer inloggegevens invoert of op een kwaadaardige link klikt).
- Op de websites met getoonde advertenties.
- Kwaadaardige e-mails die naar het slachtoffer worden gestuurd.
Deze aanval vindt plaats wanneer de kwaadwillende gebruiker de kwetsbare delen van de website vindt en deze als geschikte kwaadaardige invoer verzendt. Schadelijk script wordt in de code geïnjecteerd en vervolgens als uitvoer naar de eindgebruiker verzonden.
Laten we een eenvoudig voorbeeld analyseren: Stel dat we een website hebben met een zoekveld.
Als het zoekveld kwetsbaar is en de gebruiker een script invoert, wordt het uitgevoerd.
Bedenk dat een gebruiker een heel eenvoudig script invoert, zoals hieronder wordt weergegeven:
Vervolgens nadat u op het 'Zoeken' knop, wordt het ingevoerde script uitgevoerd.
Zoals we zien in de Voorbeeld het script dat in het zoekveld is getypt, wordt uitgevoerd. Dit toont slechts de kwetsbaarheid van de XSS-aanval aan. Er kan echter ook een schadelijker script worden getypt.
Veel testers verwarren Cross Site Scripting-aanvallen met Javascript-injectie , dat ook aan de klantzijde wordt uitgevoerd. In beide gevallen wordt het kwaadaardige script van de aanval geïnjecteerd. In het XSS-aanvalsgeval zijn tags echter niet nodig om het script uit te voeren.
Bijvoorbeeld
Het kan ook een script zijn dat op de andere gebeurtenis wordt uitgevoerd.
beste sites om gratis anime te kijken
Bijvoorbeeld:Op een muisaanwijzer.
Laten we een ander voorbeeld analyseren:Bedenk dat we een pagina hebben waarop de laatste boekbespreking op de website wordt weergegeven.
De code van deze pagina ziet er als volgt uit:
Deze code schakelt HTML-escaping over voor de hele applicatie.
Als u HTML-escaping wilt wijzigen voor de formulieren van de juiste pagina, moet de code als volgt worden geschreven:
Er zijn veel kant-en-klare XSS-filters in de vorm van een .jar-bestand. Ik herinner eraan dat het .jar-bestand aan uw project moet worden toegevoegd en alleen dan kunnen de bibliotheken ervan worden gebruikt. Een van die XSS-filters is xssflt.jar, een servletfilter. Dit .jar-bestand kan eenvoudig van internet worden gedownload en aan uw project worden toegevoegd.
Dit filter controleert elk verzoek dat naar de applicatie wordt gestuurd en reinigt het van een mogelijke injectie.
Wanneer een external.jar-bestand aan het project wordt toegevoegd, moet dit ook worden beschreven in het web.xml-bestand:
Een andere mogelijke oplossing is de ESAPI-bibliotheek. ESAPI-bibliotheek is compatibel met veel programmeertalen. U kunt ESAPI-bibliotheken vinden voor programmeertalen Java en PHP. Het is een open source en gratis bibliotheek, die helpt om de beveiliging van de applicatie te controleren.
XSS-spiekbriefjes
XSS Cheat Sheets kunnen zeer nuttig zijn om cross-site scripting te voorkomen. Het is een richtlijn voor de ontwikkelaars om XSS-aanvallen te voorkomen. De regels zijn erg nuttig en mogen tijdens het ontwikkelen niet worden vergeten. XSS Cheat Sheets zijn te vinden in internetgemeenschappen zoals OWASP (The Open Web Application Security Project).
Verschillende soorten Cheat Sheets:
- XSS Preventie Cheat Sheet
- DOM XSS Cheatsheet
- XSS Filter Evasion Cheat Sheet
De belangrijkste richtlijn zou de XSS Prevention Cheat Sheet zijn, aangezien deze algemene regels bevat voor het voorkomen van XSS-aanvallen. Als u de regels voor DOM XSS Cheat Sheet en XSS Filter Evasion Cheat Sheet zou volgen, zou u nog steeds de XSS Prevention Cheat Sheet moeten volgen.
Zoals gezegd, is XSS Prevention Cheat Sheet te vinden in de OWASP-community. Deze Cheat Sheet geeft ons een lijst met regels die ons zouden helpen om de risico's van mogelijke XSS-aanvallen te verkleinen. Het zijn niet alleen de coderingsregels, maar ook de beveiligingsproblemen op basis van preventie.
Enkele van de regels zijn:
- Er mogen geen niet-vertrouwde gegevens worden ingevoegd.
- HTML moet worden geëscaped voordat u niet-vertrouwde gegevens invoegt.
- Het kenmerk moet worden ontsnapt voordat u de niet-vertrouwde gegevens invoegt, enz.
Daarom kan Cheat Sheet erg nuttig zijn om dit soort aanvallen te voorkomen.
Gevolgtrekking
Tijdens het testen wordt het ten zeerste aanbevolen om de risico's te evalueren die mogelijke XSS-aanvallen met zich meebrengen. Een XSS-aanval kan webapplicaties beïnvloeden, die ook veilig lijken te zijn.
Het wordt beschouwd als een van de meest schadelijke en risicovolle aanvallen. Daarom mogen we dit type testen niet vergeten. Bij het uitvoeren van tests tegen XSS is het belangrijk om een goede kennis over deze aanval te hebben. En dit is de basis om de testresultaten correct te analyseren en de juiste testtools te kiezen.
Bent u een tester die te maken heeft gehad met cross-site scripting XSS-aanvallen? Heeft u interessante feiten over XSS-aanvallen die onze lezers ook zouden kunnen helpen? Deel gerust uw ervaringen met ons in de comments hieronder !!
Aanbevolen literatuur
- Diepgaande Eclipse-zelfstudies voor beginners
- Zelfstudie over HTML-injectie: typen en preventie met voorbeelden
- Tutorial SQL-injectie testen (voorbeeld en preventie van SQL-injectieaanvallen)
- Wat is DDoS-aanval en hoe doe je DDoS?
- Selenium Grid-zelfstudie: installatie en voorbeeld van crossbrowser-testen
- Zelfstudie over reflectie in Java met voorbeelden
- SVN-zelfstudie: broncodebeheer met behulp van Subversion
- Python DateTime-zelfstudie met voorbeelden