Hur hackare tar över webbplatser med SQL Injection och DDoS

Sep 28, 2025
Sekretess och säkerhet
OBEHANDLAT INNEHÅLL

Även om du bara löst har följt händelserna i hackargrupperna Anonymous och LulzSec, har du förmodligen hört talas om webbplatser och tjänster som hackats, som de ökända Sony-hackarna. Har du någonsin undrat hur de gör det?

Det finns ett antal verktyg och tekniker som dessa grupper använder, och även om vi inte försöker ge dig en manual för att göra det själv är det bra att förstå vad som händer. Två av de attacker som du konsekvent hör om dem med är “(Distribuerad) Denial of Service” (DDoS) och “SQL Injections” (SQLI). Så här fungerar de.

Bild av xkcd

Denial of Service Attack

Vad är det?

En ”denial of service” (ibland kallad “distribution denial of service” eller DDoS) inträffar när ett system, i detta fall en webbserver, tar emot så många förfrågningar samtidigt att serverresurserna är överbelastade, systemet helt enkelt låser och stängs av. Målet och resultatet av en framgångsrik DDoS-attack är att webbplatserna på målservern inte är tillgängliga för legitima trafikförfrågningar.

Hur fungerar det?

Logistiken för en DDoS-attack kan förklaras bäst med ett exempel.

Föreställ dig att en miljon människor (angriparna) träffas i syfte att hindra företag X: s verksamhet genom att ta bort deras callcenter. Angriparna samordnar så att de alla tisdag klockan 9.00 ringer till företagets telefonnummer. Troligtvis kommer inte företagets telefonsystem att kunna hantera en miljon samtal på en gång, så alla inkommande linjer kommer att bindas av angriparna. Resultatet är att legitima kundsamtal (dvs. de som inte är angriparna) inte kommer igenom eftersom telefonsystemet är bundet och hanterar samtalen från angriparna. Så i huvudsak tappar företag X potentiellt affärer på grund av att legitima förfrågningar inte kan komma igenom.

En DDoS-attack på en webbserver fungerar exakt på samma sätt. Eftersom det praktiskt taget inte finns något sätt att veta vilken trafik som kommer från legitima förfrågningar kontra angripare tills webbservern behandlar begäran, är denna typ av attack vanligtvis mycket effektiv.

Utför attacken

På grund av den ”brute force” karaktären hos en DDoS-attack måste du ha massor av datorer alla samordnade för att attackera samtidigt. Om vi ​​återgår till vårt callcenter-exempel, skulle detta kräva att alla angripare vet att de ringer klockan 9 och faktiskt ringer vid den tiden. Även om denna princip verkligen kommer att fungera när det gäller att attackera en webbserver, blir det betydligt lättare när zombiedatorer används istället för faktiska bemannade datorer.

Som du säkert vet finns det många varianter av skadlig kod och trojaner som, en gång på ditt system, ligger vilande och ibland “ringer hem” för instruktioner. En av dessa instruktioner kan till exempel vara att skicka upprepade förfrågningar till Company Xs webbserver klockan 9. Så med en enda uppdatering av hemplaceringen för respektive skadlig kod kan en enda angripare omedelbart samordna hundratusentals komprometterade datorer för att utföra en massiv DDoS-attack.

Skönheten i att använda zombiedatorer är inte bara i dess effektivitet utan också i dess anonymitet, eftersom angriparen faktiskt inte behöver använda sin dator alls för att utföra attacken.

SQL Injection Attack

Vad är det?

En "SQL-injektion" (SQLI) -attack är ett utnyttjande som utnyttjar dålig webbutvecklingsteknik och, vanligtvis i kombination med, felaktig databassäkerhet. Resultatet av en lyckad attack kan sträcka sig från att imitera ett användarkonto till en fullständig kompromiss mellan respektive databas eller server. Till skillnad från en DDoS-attack kan en SQLI-attack helt och hållet förebyggas om en webbapplikation är korrekt programmerad.

Utför attacken

När du loggar in på en webbplats och anger ditt användarnamn och lösenord kan webbapplikationen köra en fråga för att testa dina uppgifter:

VÄLJ användar-ID från användare VAR användarnamn = 'minanvändare' OCH lösenord = 'mypass';

Obs! Strängvärden i en SQL-fråga måste bifogas i enstaka citat, varför de visas runt de användarinmatade värdena.

Så kombinationen av det angivna användarnamnet (myuser) och lösenordet (mypass) måste matcha en post i tabellen Användare för att ett UserID ska returneras. Om det inte finns någon matchning returneras inget användar-ID så inloggningsuppgifterna är ogiltiga. Medan en viss implementering kan skilja sig från är mekaniken ganska standard.

Så nu ska vi titta på en mallautentiseringsfråga som vi kan ersätta de värden som användaren anger på webbformuläret:

VÄLJ användarID FRA användare VAR användarnamn = '[user]' OCH lösenord = '[pass]'

Vid första anblicken kan detta verka som ett enkelt och logiskt steg för att enkelt validera användare, men om en enkel ersättning av de användarinmatade värdena utförs i den här mallen är den mottaglig för en SQLI-attack.

Antag till exempel att “myuser’–” anges i användarnamnsfältet och ”felpass” anges i lösenordet. Med hjälp av enkel ersättning i vår mallfråga skulle vi få det här:

VÄLJ UserID FRA användare WHERE UserName = 'myuser' - 'AND Password =' ​​wrongpass '

En nyckel till detta uttalande är inkluderingen av de två streckarna (--) . Detta är startkommentar-token för SQL-uttalanden, så allt som visas efter de två streckarna (inklusive) ignoreras. I huvudsak körs ovanstående fråga av databasen som:

VÄLJ UserID FRA användare WHERE UserName = 'myuser'

Den uppenbara utelämnandet här är bristen på lösenordskontrollen. Genom att inkludera de två streckarna som en del av användarfältet kringgick vi helt lösenordskontrollvillkoren och kunde logga in som “myuser” utan att känna till respektive lösenord. Denna handling att manipulera frågan för att producera oavsiktliga resultat är en SQL-injektionsattack.

Vilken skada kan göras?

En SQL-injektionsattack orsakas av vårdslös och oansvarig applikationskodning och är helt förebyggbar (vilket vi kommer att täcka om ett ögonblick), men omfattningen av skadan som kan göras beror på databasinställningen. För att en webbapplikation ska kunna kommunicera med backend-databasen måste applikationen tillhandahålla en inloggning till databasen (notera, detta är annorlunda än en användarinloggning till själva webbplatsen). Beroende på vilka behörigheter webbapplikationen kräver, kan detta respektive databaskonto kräva allt från läs- / skrivbehörighet i befintliga tabeller till full databasåtkomst. Om detta inte är klart nu bör några exempel hjälpa till att ge klarhet.

Baserat på ovanstående exempel kan du se att genom att t.ex. ange "dinanvändare" - "," admin "-" eller något annat användarnamn kan vi omedelbart logga in på webbplatsen som den användaren utan att veta lösenordet. När vi väl är inne i systemet vet vi inte att vi egentligen är den användaren, så vi har full tillgång till respektive konto. Databasbehörigheter tillhandahåller inte ett skyddsnät för detta eftersom en webbplats vanligtvis måste ha åtminstone läs- / skrivåtkomst till respektive databas.

Låt oss nu anta att webbplatsen har full kontroll över sin respektive databas som ger möjlighet att ta bort poster, lägga till / ta bort tabeller, lägga till nya säkerhetskonton etc. Det är viktigt att notera att vissa webbapplikationer kan behöva denna typ av tillstånd så att det är inte automatiskt en dålig sak att full kontroll beviljas.

Så för att illustrera skadorna som kan göras i denna situation kommer vi att använda exemplet i serien ovan genom att ange följande i användarnamnsfältet: "Robert '; DROP TABLE Users; -". Efter enkel ersättning blir autentiseringsfrågan:

VÄLJ UserID FRA användare WHERE UserName = 'Robert'; DROPTABELL Användare; - 'OCH Lösenord =' ​​felpass '

Obs: semikolonet finns i en SQL-fråga används för att beteckna slutet på ett visst uttalande och början på ett nytt uttalande.

Som körs av databasen som:

VÄLJ UserID FRA användare WHERE UserName = 'Robert'

DROP TABLE Användare

Så precis så har vi använt en SQLI-attack för att ta bort hela användartabellen.

Naturligtvis kan mycket sämre göras eftersom angriparen, beroende på de tillåtna SQL-behörigheterna, kan ändra värden, dumpa tabeller (eller hela databasen) till en textfil, skapa nya inloggningskonton eller till och med kapa hela databasinstallationen.

Förhindra en SQL-injektionsattack

Som vi nämnde flera gånger tidigare är en SQL-injektionsattack lätt att förebygga. En av de viktigaste reglerna för webbutveckling är att du aldrig blint litar på användarinmatningen som vi gjorde när vi utförde en enkel ersättning i vår mallfråga ovan.

En SQLI-attack hindras lätt av det som kallas att desinficera (eller komma undan) dina ingångar. Saneringsprocessen är faktiskt ganska trivial eftersom allt det i huvudsak gör är att hantera alla inbyggda enskilda citattecken (‘) på lämpligt sätt så att de inte kan användas för att i förtid avsluta en sträng inuti ett SQL-uttalande.

Om du till exempel vill slå upp "O'neil" i en databas, kan du inte använda enkel ersättning eftersom det enda citatet efter O skulle orsaka att strängen slutar för tidigt. Istället sanerar du det med hjälp av respektive databas flyktecken. Låt oss anta att flyktecknet för ett inbyggt enstaka offert är före varje citat med en \ symbol. Så "O'neal" skulle saneras som "O \ 'neil".

Denna enkla sanitetshandling förhindrar i stort sett en SQLI-attack. För att illustrera, låt oss granska våra tidigare exempel och se de resulterande frågorna när användarinmatningen är sanerad.

myuser '- / felpass :

VÄLJ UserID FRA användare WHERE UserName = 'myuser \' - 'AND Password =' ​​wrongpass '

Eftersom det enskilda offertet efter att minanvändare har undkommit (vilket betyder att det anses vara en del av målvärdet), kommer databasen bokstavligen att söka efter UserName av "myuser" - ". Dessutom, eftersom bindestreck ingår i strängvärdet och inte i själva SQL-satsen, kommer de att betraktas som en del av målvärdet istället för att tolkas som en SQL-kommentar.

Robert '; DROP TABLE Användare; - / felpass :

VÄLJ UserID FRA användare WHERE UserName = 'Robert \'; DROPTABELL Användare; - 'OCH Lösenord =' ​​felpass '

Genom att helt enkelt fly från den enskilda offerten efter Robert finns både semikolon och bindestreck i söksträngen UserName så att databasen bokstavligen söker efter "Robert"; DROP TABLE-användare; - " istället för att köra tabellen ta bort.

Sammanfattningsvis

Medan webbattacker utvecklas och blir mer sofistikerade eller fokuserar på en annan inträdesplats, är det viktigt att komma ihåg att skydda mot beprövade och sanna attacker som har varit inspiration för flera fritt tillgängliga "hackerverktyg" som är utformade för att utnyttja dem.

Vissa typer av attacker, som DDoS, kan inte lätt undvikas medan andra, som SQLI, kan. Skadorna som kan göras av dessa typer av attacker kan dock variera var som helst från ett besvär till katastrofalt beroende på de försiktighetsåtgärder som vidtagits.

.post-innehåll .inmatningsfot

DDOS Attack On Azerbedzjan Web Sites

Tutorial SQL Injection With SQLmap

How A Hacker Could Attack Web Apps With Burp Suite & SQL Injection

Web Application SECURITY In ASP.NET Core - Part 1 - SQL Injection

Hacking Websites With SQL Injection - Computerphile

Anonymous - How To Hack A Website By DDosing And SQL Injection

Hacking With SQL Injection Attacks (and Where To Practice Them Safely)

How A Hacker Could Attack Website With SQL Injection | Hacking Tutorial


Sekretess och säkerhet - Mest populära artiklar

Så här tar du bort din personliga information från People-Finder-webbplatser

Sekretess och säkerhet Feb 11, 2025

fizkes / Shutterstock.com Det fanns en tid på internet när ingen skulle veta om du var en hund, men de dagarna är långt borta. Det är nu otr..


Alexa, varför tittar anställda på mina uppgifter?

Sekretess och säkerhet Apr 15, 2025

OBEHANDLAT INNEHÅLL Craig Lloyd Alla har pratat om Bloombergs rapport att Amazon-arbetare lyssnar på röstinspelningar skapa..


Vad är Google Smart Lock, exakt?

Sekretess och säkerhet Jun 5, 2025

OBEHANDLAT INNEHÅLL Google gör denna sak där de använder dåliga namn på produkter. Sedan återanvänder de namnen för andra produkter och förvirrar alla. Så är fallet f�..


De bästa (och sämsta) sakerna om Samsung Galaxy S8

Sekretess och säkerhet May 24, 2025

OBEHANDLAT INNEHÅLL De Galaxy S8 är Samsungs senaste flaggskeppstelefon, en triumferande återkomst till rampljuset efter den katastrofala not 7. Det finns mycket..


Varför du inte kan bli smittad bara genom att öppna ett e-postmeddelande (mer)

Sekretess och säkerhet Jul 12, 2025

OBEHANDLAT INNEHÅLL E-postvirus är verkliga, men datorer smittas inte bara genom att öppna e-postmeddelanden längre. Att bara öppna ett e-postmeddelande för att se det är s..


SafetyNet förklarade: Varför Android Pay och andra appar inte fungerar på rotade enheter

Sekretess och säkerhet Jul 11, 2025

Att rota din Android-enhet ger dig tillgång till ett större antal appar och en djupare åtkomst till Android-systemet. Men vissa appar - som Googles Android Pay –..


AirDrop 101: Skicka enkelt innehåll mellan iPhones, iPads och Mac-datorer i närheten

Sekretess och säkerhet Jan 31, 2025

Med AirDrop kan du snabbt och enkelt skicka länkar, foton, filer och mer innehåll mellan närliggande iPhones, iPads och Mac-datorer. Öppna bara Dela-panelen och tryck på en enh..


Så här städar du en Windows-dator i ditt nätverk med CCleaner

Sekretess och säkerhet Jul 31, 2025

Har du någonsin behövt rengöra någons dator men ville du göra det från din dator istället för deras? Så här kan du fjärrköra CCleaner på vilken Windows-dato..


Kategorier