Vulnerabilities

Hva er SQL Injection (SQLi)?

SQL Injection (SQLi) er en type angrep hvor angripere legger inn skadelige SQL-setninger i et inndatafelt for å manipulere databasen.

Hva er SQL-injeksjon (SQLi)?

SQL-injeksjon (SQLi) er en type angrep der angripere legger inn skadelige SQL-setninger i inndatafelt for å manipulere databasen.

Dette angrepet retter seg mot applikasjoner som ikke håndterer validering og brukerinput riktig, og tillater uautorisert tilgang til sensitiv data som passord eller kredittkortdetaljer, osv.

Hvordan SQL-injeksjon fungerer

Når en applikasjon direkte inkluderer brukerinput i en databaseforespørsel uten riktig validering, kan angripere endre forespørselens oppførsel for å legge inn en skadelig SQL-setning.

For eksempel:

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

En angriper kunne legge inn:

' OR '1'='1

Som resulterer i:

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

Dette returnerer alltid sant, og gir uautorisert tilgang.

Hvorfor SQL-injeksjon er viktig i cybersikkerhet

SQL-injeksjon er den farligste og eldste teknikken innen cybersikkerhet. Denne typen angrep er konsekvent oppført i OWASP Top 10.

Selv små sårbarheter tillater en angriper å:

  • Tilgang, endre eller slette data
  • Omgå autentisering
  • Utføre administrative operasjoner på databasen.
  • Kompromittere hele systemet.

Vanlige typer SQL-injeksjon

  • Klassisk SQLi : Direkte injeksjon via webskjemaer eller URL-parametere.
  • Blind SQLi : Angripere utleder databaseinformasjon indirekte (f.eks. via feilmeldinger eller responstid).
  • Union-basert SQLi : Bruker UNION-operatøren for å kombinere resultater fra flere spørringer.
  • Feilbasert SQLi : Stoler på databasefeilmeldinger for å hente informasjon.
  • Tidsbasert Blind SQLi : Utnytter serverens responstid for å gjette spørringsresultater.

Hvordan forhindre SQL-injeksjon

1. Bruk parameteriserte spørringer (forberedte uttalelser)

Sørg for at SQL-kommandoer behandler brukerinput som data, ikke kjørbar kode.

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

2. Inputvalidering og sanitisering

Valider all input fra brukere, tillat kun forventede tegn.

3. Bruk ORM-rammeverk

Rammeverk som Prisma, Hibernate, etc, reduserer direkte SQL-håndtering.

4. Prinsippet om minst privilegium

Begrens brukerrettigheter, gi kun de rettigheter som er nødvendige.

5. Regelmessig sikkerhetstesting

Bruk verktøy for sikkerhetstesting av applikasjoner som SAST, DAST eller IAST for å oppdage injeksjonsfeil tidlig.

Eksempel i den virkelige verden

En nettbutikk opplevde et brudd der angripere brukte en SQL-injeksjon i et påloggingsskjema for å hente kredittkortdetaljer fra databasen.

Relaterte begreper

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)