Vulnerabilities

Wat is SQL-injectie (SQLi)?

SQL-injectie (SQLi) is een type aanval waarbij aanvallers kwaadaardige SQL-instructies invoeren in een invoerveld om de database te manipuleren.

Wat is SQL-injectie (SQLi)?

SQL-injectie (SQLi) is een type aanval waarbij aanvallers kwaadaardige SQL-instructies invoeren in een invoerveld om de database te manipuleren.

Deze aanval richt zich op applicaties die er niet in slagen om validatie en gebruikersinvoer correct af te handelen, waardoor ongeautoriseerde toegang tot gevoelige gegevens zoals wachtwoorden of creditcardgegevens mogelijk wordt.

Hoe SQL-injectie werkt

Wanneer een applicatie gebruikersinvoer direct opneemt in een databasequery zonder juiste validatie, kunnen aanvallers het gedrag van de query wijzigen om een kwaadaardige SQL-instructie in te voeren.

Bijvoorbeeld:

SELECT * FROM users WHERE username = 'admin' AND password = '12345';

Een aanvaller zou kunnen invoeren:

' OR '1'='1

Resulterend in:

SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';

Dit levert altijd waar op, waardoor ongeautoriseerde toegang wordt verleend.

Waarom SQL-injectie belangrijk is in cybersecurity

SQL-injectie is de gevaarlijkste en oudste techniek in cybersecurity. Dit type aanval staat consequent vermeld in de OWASP Top 10.

Zelfs kleine kwetsbaarheden stellen een aanvaller in staat om:

  • Toegang tot, wijzigen of verwijderen van gegevens
  • Authenticatie omzeilen
  • Administratieve bewerkingen op de database uitvoeren.
  • Het gehele systeem compromitteren.

Veelvoorkomende Soorten SQL-injectie

  • Klassieke SQLi : Directe injectie via webformulieren of URL-parameters.
  • Blinde SQLi : Aanvallers leiden database-informatie indirect af (bijv. via foutmeldingen of responstijd).
  • Union-gebaseerde SQLi : Gebruikt de UNION-operator om resultaten van meerdere queries te combineren.
  • Fout-gebaseerde SQLi : Vertrouwt op databasefoutmeldingen om informatie te extraheren.
  • Tijd-gebaseerde Blinde SQLi : Benut serverresponstijdvertragingen om queryresultaten te raden.

Hoe SQL-injectie te Voorkomen

1. Gebruik Geparameteriseerde Queries (Voorbereide Statements)

Zorg ervoor dat SQL-commando’s gebruikersinvoer als data behandelen, niet als uitvoerbare code.

cursor.execute("SELECT * FROM users WHERE username = ?", (username,))

2. Invoer Validatie en Sanitisatie

Valideer alle invoer van gebruikers, alleen verwachte tekens toestaan.

3. Gebruik ORM-frameworks

Frameworks zoals Prisma, Hibernate, etc., verminderen directe SQL-afhandeling.

4. Principe van Minimaal Recht

Beperk gebruikersrechten, geef alleen de rechten die nodig zijn.

5. Regelmatige Beveiligingstests

Gebruik applicatiebeveiligingstesttools zoals SAST, DAST of IAST om injectiefouten vroegtijdig op te sporen.

Voorbeeld in de echte wereld

Een website van een online winkel leed onder een inbreuk waarbij aanvallers een SQL-injectie in een inlogformulier gebruikten om creditcardgegevens uit de database te halen.

Gerelateerde termen

Ready to validate what matters?

Ready to validate what matters?

Plexicus is Proof-Driven AppSec: validated findings, contextual understanding, and reviewed remediation — anchored in evidence, scoped with you.

Qualification

Check whether AI Swarm Pentest fits your environment.

Share the minimum context. We will review the scope and tell you the next commercial step.

Before submitting — verify you fit

Teams with fewer than 50 developers: start a 14-day Trial instead of booking a demo. Start a 14-day Trial →

0 / 280

No commitment. If you don't fit, we'll tell you.

SAMPLE HANDOVER · ILLUSTRATIVE

Sample evidence handover

A trimmed view of what your team receives at the end of an AI Swarm Pentest engagement. Real engagements include full technical evidence, executive narrative, and a remediation plan.

VALIDATED FINDING Evidence attached

Server-Side Request Forgery in webhooks/receiver

demo-project/sample-app · src/webhooks/receiver.py:42

SeverityHigh CVSS 3.18.6 Priority79 Confirmedvia replay

Untrusted caller-supplied URLs reach an internal egress without an allowlist. Replayed in a sandbox against a fresh authorised target — the same control was validated to fail twice.

REVIEWER-READY REMEDIATION Merge-ready PR

Validate the target URL against an allowlist of permitted hostnames. Reject private/internal IP ranges. Enforce HTTPS only.

plexicus/remediation/webhooks-ssrf 3 changed · 0 new files
42resp = requests.get(target_url)
42+if not is_allowed_host(target_url):
43+  raise WebhookRejected(target_url)
44+resp = requests.get(target_url, timeout=5)
Every engagement hands over:
  • Executive briefing
  • Validated findings list
  • Merge-ready PRs
  • Compliance mapping (NIS2 · DORA · CRA)