Vulnerabilities

Vad är SQL-injektion (SQLi)?

SQL-injektion (SQLi) är en typ av attack där angripare matar in skadliga SQL-satser i inmatningsfält för att manipulera databasen.

Vad är SQL-injektion (SQLi)?

SQL-injektion (SQLi) är en typ av attack där angripare matar in skadlig SQL-sats i ett inmatningsfält för att manipulera databasen.

Denna attack riktar sig mot applikationer som inte hanterar validering och användarinmatning korrekt, vilket möjliggör obehörig åtkomst till känslig data såsom lösenord eller kreditkortsuppgifter, etc.

Hur SQL-injektion fungerar

När en applikation direkt inkluderar användarinmatning i en databasfråga utan korrekt validering, kan angripare ändra frågans beteende för att mata in en skadlig SQL-sats.

Till exempel:

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

En angripare skulle kunna mata in:

' OR '1'='1

Resulterande i:

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

Detta returnerar alltid sant, vilket ger obehörig åtkomst.

Varför SQL-injektion är viktigt inom cybersäkerhet

SQL-injektion är den farligaste och äldsta tekniken inom cybersäkerhet. Denna typ av attack listas konsekvent i OWASP Top 10.

Även små sårbarheter tillåter en angripare att:

  • Åtkomst, ändra eller ta bort data
  • Förbikoppla autentisering
  • Utföra administrativa operationer på databasen.
  • Kompromettera hela systemet.

Vanliga typer av SQL-injektion

  • Klassisk SQLi : Direkt injektion via webbformulär eller URL-parametrar.
  • Blind SQLi : Angripare härleder databasinformation indirekt (t.ex. via felmeddelanden eller svarstid).
  • Union-baserad SQLi : Använder UNION-operatören för att kombinera resultat från flera frågor.
  • Felbaserad SQLi : Förlitar sig på databasfelmeddelanden för att extrahera information.
  • Tidsbaserad Blind SQLi : Utnyttjar serverns svarsfördröjningar för att gissa frågeresultat.

Hur man förhindrar SQL-injektion

1. Använd parameteriserade frågor (Förberedda uttalanden)

Säkerställ att SQL-kommandon behandlar användarinmatning som data, inte exekverbar kod.

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

2. Inmatningsvalidering och sanering

Validera all inmatning från användare, tillåt endast förväntade tecken.

3. Använd ORM-ramverk

Ramverk som Prisma, Hibernate, etc, minskar direkt hantering av SQL.

4. Principen om minst privilegium

Begränsa användarbehörigheter, ge endast den behörighet som behövs.

5. Regelbunden säkerhetstestning

Använd verktyg för applikationssäkerhetstestning som SAST, DAST eller IAST för att upptäcka injektionsbrister tidigt.

Exempel i verkligheten

En webbplats för en nätbutik drabbades av ett intrång där angripare använde en SQL-injektion i ett inloggningsformulär för att extrahera kreditkortsuppgifter från dess databas.

Relaterade termer

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)