Cross-site scripting sårbarheder er blevet udnyttet af angribere siden begyndelsen af 2000 ‘ erne. Imidlertid tager mange udviklere, systemadministratorer og endda nogle penetrationstestere det stadig ikke alvorligt. For at blive en effektiv internetapplikationshacker eller forsvarer skal du forstå det grundlæggende i, hvordan du forhindrer angreb.
SSS-angreb er stadig et problem
Cross-site scripting er en type sårbarhed på internettet, der gør det muligt for angribere at injicere og udføre ondsindet klientside-kode i offerets bro.ser i en legitim internetapplikation.
virkningen og sværhedsgraden af vellykkede angreb kan variere. Angreb kan resultere i session kapring, stjålne tokens, stjålne session cookies og cross-site anmodning forfalskning angreb. Disse angreb kan føre til, at brugerkonti kompromitteres.
et vellykket angreb kan også gøre det muligt for en hacker at bruge stjålne eller forfalskede cookies til at efterligne gyldige brugere. I tilfælde, hvor den gyldige bruger har administrative rettigheder i applikationen, angriberen kan derefter bruge disse privilegier til at ændre sider eller udføre fjernkørsel af kode på serversiden af applikationen.
typer af angreb
der er tre typer angreb: lagret, reflekteret og DOKUMENTOBJEKTMODEL (DOM) baseret.
- et gemt hackerangreb gør det muligt for en hacker at integrere et ondsindet script i en sårbar side, som derefter udføres, når et offer ser siden. Det anses for at være den mest skadelige type angreb. Når en hacker f.eks. injicerer en ondsindet JavaScript-nyttelast direkte i en sårbar internetapplikation, gemmer netsøgeren den injicerede JavaScript-nyttelast. Derefter, hver gang offeret besøger denne hjemmeside eller internetapplikation, den ondsindede kode udføres.
- et reflekteret angreb opstår, når den ondsindede nyttelast er indlejret i et link og kun aktiveres, når brugeren klikker på linket. Her gemmes den ondsindede nyttelast ikke, men vises kun på hjemmesiden i form af en URL eller postdata.
- en dom-baseret sårbarhed opstår, når DOM bruges til at generere dynamisk indhold, der indeholder brugerinput, der kan behandles uden kontrol. Denne type angreb udføres med JavaScript i offerets bro.ser
forebyggelse af angreb
for at forhindre angreb af angreb skal udviklere validere brugerinput ved korrekt at filtrere ud eller undslippe specialtegn og derefter kode output for at forhindre lagrede angreb af angreb af angreb af angreb af angreb. Følgende specialtegn skal altid filtreres ud eller undslippes for at forhindre dem i at blive udnyttet ondsindet:
< |
> |
“ |
‘ |
) |
( |
& |
udviklere bør validere brugerinput-kilder-og kode output-dræn-for at forhindre DOM-baserede angreb. Inputkildeegenskaben er, hvor DOM læser fra, og kilden er, hvor angriberen kan injicere ondsindet kode for at udnytte sårbarheden. Følgende kildeegenskaber bør undgås:
- URL
- documentURI
- placering
- href
- søg
- hash
dræn er de punkter, hvor DOM udfører de ondsindede tegn eller kode fra input-kilden-som igen bliver udsendt til hjemmesiden. Disse dræn bør undgås for at forhindre denial-of-service-baserede angreb:
- innerHTML
- outerHTML
- skriv
hvis du gerne vil blive bedre til at forstå og forebygge angreb, har Google bygget en hjemmeside til at lære, hvordan disse angreb fungerer, og hvordan man bedre kan forhindre dem. Mutillidae 2-projektet tilbyder også et læringsmål for internetsikkerhedspersonale til at skærpe deres ANGREBSFORSVAR.