Log ind

Kontrolpanel Webmail Hjemmesideprogram Webshop File Manager WordPress

Hvad er SQL injection?

Læs vores eksempler på SQL-injections for at forstå, hvordan SQL-angreb fungerer

vector

Kort om

Glossary

SQL-injection er en type cyberangreb, hvor en hacker bruger ondsindet kode til at manipulere en hjemmesides database og få adgang til følsomme oplysninger.

Structured Query Language, også kendt som SQL-injection, er betegnelsen for et sikkerhedsbrist på nettet, der muliggør et angreb. Et SQL-injectionsangreb gør det muligt for en hacker at se data, som de ikke burde have adgang til. Der er ofte tale om følsomme data, da det kan være data tilhørende brugere, eller data som ellers kun applikationen har adgang til.

Hvad vil hackeren med disse data? Normalt vil hackeren enten slette data fra webapplikationen eller ændre dem fuldstændigt for at forårsage problemer for ejerne af hjemmesiden.

I nogle tilfælde vil hackerne udføre et SQL-injectionsangreb på webapplikationens server for at kompromittere dens funktion, og dermed stille ejeren i et dårligt lys overfor brugerne. 

Hvad medfører et SQL-injectionsangreb?

Mange virksomheder rammes hårdt af SQL-injectionsangreb. Det gælder selv store virksomheder. Hvis din virksomhed bliver udsat for et SQL-injectionsangreb, så risikerer det at påvirke din forretning og dit omdømme negativt. Din virksomhed risikerer at miste brugernes private oplysninger, og det er en ganske uheldig situation af havne. På grund af databeskyttelsesloven er det faktisk strafbart at miste denne type information, og derfor er det også vigtigt at træffe de nødvendige forebyggende foranstaltninger for at undgå et angreb.

Eksempel på SQL injection angreb

Et eksempel på et angreb kunne være noget i denne retning;

Lad os forestille os, at du har et e-handelshjemmeside. Du har en kategori på din hjemmeside, hvor man kan købe sneakers. En bruger er interesseret i at købe et par sneakers, så vedkommende klikker sig ind på denne kategori på din hjemmeside. 

Ved en SQL-injection vil hackeren forsøge at indsætte ondsindede SQL-udsagn i webapplikationen.

Når brugeren klikker på kategorien, vil deres browser anmode om:

https://fake-website.com/products?catgory=Sneakers.

Din webapplikation vil lave en SQL-forespørgsel for at modtage detaljer og relevant information om den pågældende kategori fra databasen.

SQL-forespørgslen vil højst sandsynligt læses som:

Vælg * FRA produkter HVOR kategori = ‘Sneakers’ OG frigivet = 1

I dette øjeblik beder SQL-forespørgslen databasen om at returnere detaljer fra denne produktkategori, mere specifikt for din sneakers kategori.

Frigivet = 1 er en begrænsning, der er med for at skjule produkter, der endnu ikke er blevet lanceret. For eksempel har du andre varianter af sneakers, som du ønsker at frigive længere nede i linjen. Koden 1 vil sørge for, at de ikke er tilgængelige for offentligheden.

Din webapplikation har muligvis ikke nogen måde at beskytte sig selv mod et SQL-injectionsangreb. Så en hacker kan desværre angribe på en måde som denne:

https://fake-website.com/products?catgory=Sneakers’–

Dette vil resultere i en SQL-forespørgsel, der ser sådan ud:

Vælg * FRA produkter HVOR kategori = ‘Sneakers’–‘ OG frigivet = 1

Den dobbelte bindestreg-sekvens er en indikator, der angiver, at forespørgslen er en kommentar. Og hvis systemet opfatter det som at forespørgslen er en kommentar, kan det ikke vide, at det er et angreb. Efterfølgende vil den dobbelte bindestreg fjerne resten af ​​forespørgslen dvs. OG frigivet = 1, som til gengæld frigiver information om alle dine produkter i din kategori. Selv de produkter, der ikke er blevet frigivet til offentligheden endnu.

Ydermere kan personen bag angrebet iværksætte endnu et SQL-angreb for at se alt andet, som du sælger på din hjemmeside; dvs. alle dine varer-kategorier.

Hackeren vil angribe på denne måde:

https://fake-website.com/products?catgory=Sneakers’+OR+1=1–

Dette vil resultere i en SQL-forespørgsel, der ser sådan ud:

Vælg * FRA produkter HVOR kategori = ‘Sneakers’ ELLER 1=1–‘ OG frigivet = 1

Sendes denne forespørgsel, returneres oplysninger om alle varer på din hjemmeside.

Der er mange andre måder, hvorpå en hacker kan udføre et SQL-injectionsangreb. Lad os kort berøre dem nedenfor.

● Boolean

Hackeren sender en SQL-forespørgsel for hurtigt at kunne modtage et resultat fra databasen. Ved at bruge denne boolske metode kan hackeren afgøre, om det returnerede resultat var sandt eller falsk.

● Tidsforsinkelse

Hackeren vil sende en forespørgsel, der har til hensigt at få databasen til at vente; dvs. skabe en tidsforsinkelse. Ved at bruge denne metode vil hackeren kunne se, om den forespørgsel, der er blevet sendt, er sand eller falsk baseret på den tid, det tager databasen at svare.

● Out-of-band-netværk

En hacker kan udføre et angreb uden netværket, hvis serveren, som databasen bruger, har visse særlige tilgængelige funktioner. Hackeren vil trække data udenom den vigtigste in-band-datastrøm ved at tilvejebringe en uafhængig kanal (out-of-band-kanalen) og placere data et andet sted. Denne type angreb gør, at serveren opretter en DNS- eller HTTP-anmodning for at overføre de private data til hackeren.

SQL injection angreb

De mest almindelige SQL-injectionsangreb sættes ind i det som kaldes for HVOR-kategorien. Det kan dog også ske inden for flere andre forskellige forespørgselstyper. Det kan være i opdateringssætninger, indsatte sætninger eller vælg sætninger.

Hvordan forhindrer man SQL-injectionsangreb?

Du kan starte med at træffe de nødvendige foranstaltninger allerede i dag! Størstedelen af SQL-svaghederne i et system kan hurtigt findes.

  • Sikkerhedsscan

Brug Burp Suite sikkerhedsscanneren. Du kan bruge denne scanner ved at opsætte en test mod alle indgange til applikationen.

Du kan se efter fejl, systematiske forskelle og gennemgå de ansøgningssvar, som systemet modtager.

  • Inputvalidering og WAF

Skriv en kode, der kan identificere illegitime brugere. Selvom det er en god ide at gøre, så er det dog ikke en skudsikker metode, når den bruges alene. Men implementeringen af denne metode, samtidig med, at du også bruger en webapplikationsfirewall, kan være en effektiv kombination. WAF er en sådan webapplikationsfirewall, der filtrerer, overvåger og blokerer HTTP-trafik til og fra en webservice. På den måde kan du sikre dig, at du vil få frafiltreret SQLI og andre onlinetrusler.