Hoe SQL injection werkt Door MarcelJan Krijgsman SQL

  • Slides: 21
Download presentation
Hoe SQL injection werkt Door: Marcel-Jan Krijgsman

Hoe SQL injection werkt Door: Marcel-Jan Krijgsman

SQL Injection n Een methode die gebruik maakt van invoer in de applicatie: invoervelden,

SQL Injection n Een methode die gebruik maakt van invoer in de applicatie: invoervelden, argumenten in code, etc. . n SQL Injection werkt doordat een hacker SQL code toevoegt aan de SQL die de applicatie uitvoert. n Traditionele firewalls en virusscanners kunnen SQL Injection niet tegenhouden. © Copyright Transfer Solutions B. V. 2

SQL injection

SQL injection

Normaal gebruik van een applicatie select * from verzekering where achternaam='Potter';

Normaal gebruik van een applicatie select * from verzekering where achternaam='Potter';

select * from verzekering where achternaam='Potter'; SURNAME FIRSTNAME PACKAGE -----------Potter Harry Care Plus

select * from verzekering where achternaam='Potter'; SURNAME FIRSTNAME PACKAGE -----------Potter Harry Care Plus

De kracht van quotes © Copyright Transfer Solutions B. V. ’ 6

De kracht van quotes © Copyright Transfer Solutions B. V. ’ 6

Een voorbeeld van SQL injection select * from verzekering where achternaam='Potter' or 'x'='x';

Een voorbeeld van SQL injection select * from verzekering where achternaam='Potter' or 'x'='x';

select * from verzekering where achternaam='Potter' or 'x'='x'; SURNAME -----Blofeld Bond Potter Skywalker Vader

select * from verzekering where achternaam='Potter' or 'x'='x'; SURNAME -----Blofeld Bond Potter Skywalker Vader etc. . FIRSTNAME -----Ernst Stavr James Harry Luke Darth PACKAGE ---------Care Extralux Care Basic Plus Care VIP

Eens kijken of men hier de rechten beperkt heeft… select * from verzekering where

Eens kijken of men hier de rechten beperkt heeft… select * from verzekering where achternaam='Potter'; select * from dba_users where 'x'='x';

select * from verzekering where achternaam='Potter'; select * from dba_users where 'x'='x'; SURNAME FIRSTNAME

select * from verzekering where achternaam='Potter'; select * from dba_users where 'x'='x'; SURNAME FIRSTNAME PACKAGE -----------Potter Harry Care Plus USERNAME PASSWORD ---------------SYS 5638228 DAF 52805 F SYSTEM D 4 DF 7931 AB 130 E 37 etc. . ACCOUNT_STATUS -------OPEN

Creatief met SQL Injection n or 'x'='x : laat mijn conditie zien of alles.

Creatief met SQL Injection n or 'x'='x : laat mijn conditie zien of alles. n ; gebruiken om een statement voortijdig te beëindigen of andere statements te laten volgen. n UNION: compleet andere tabellen bij resultaat voegen. © Copyright Transfer Solutions B. V. 11

Preventie

Preventie

1. Voorkomen dat SQL injection constructies toegestaan zijn in de applicatie.

1. Voorkomen dat SQL injection constructies toegestaan zijn in de applicatie.

Bind variables select * from verzekering where achternaam= : BIND; © Copyright Transfer Solutions

Bind variables select * from verzekering where achternaam= : BIND; © Copyright Transfer Solutions B. V. 15

2. Rechten in de database beperken tot het strikt nodige.

2. Rechten in de database beperken tot het strikt nodige.

CREATEANY ALTER SPFILE SQL PROFILE ANALYZE ANY CREATE ANY PROCEDURE ALTER ANY CLUSTER ALTER

CREATEANY ALTER SPFILE SQL PROFILE ANALYZE ANY CREATE ANY PROCEDURE ALTER ANY CLUSTER ALTER REATE ANY MATERIALIZED VIEWSYSTEM ALTER USER CREATE DIRECTORY AUDIT SYSTEM SELECT ATE EXTERNAL JOBANY DICTIONARY ALTER ANY PROCEDUR CREATE DATABASE LINK CREATE USER DEBUG CONNECT SESSION CREATE LIBRARYThe ALTER ANY TABLE DBA role LASHBACK ANY TABLE CREATE ANY OPERATOR RCE TRANSACTION GRANT ANY PRIVILEGE RANSACTION CREATE DATABASE ALTER ANY INDE GRANT ANY OBJECT PRIVILEGE ROP ANY TRIGGER DROP DATABASECREATE ANY INDE ALTER ANY SQL PROFILE FORCE TRANSACTI CREATE SPFILE GLOBAL QUERY REWRITE CREATE INDEXTYP NLIMITEDCREATE TABLESPACE ANY CONTEXT ALTER DATABASE DROP ANY VIEW CREATE DIMENSION CREATE TABLESPA © Copyright Transfer Solutions B. V. 17

Toepassen minimale rechten objects APP_PCK APP_TABLE create procedure execute on app_pck create table create

Toepassen minimale rechten objects APP_PCK APP_TABLE create procedure execute on app_pck create table create session APP_USER APP_OWNER

SQL injection detectie n Er is software om SQL Injection in webapplicaties te detecteren.

SQL injection detectie n Er is software om SQL Injection in webapplicaties te detecteren. n Een aantal daarvan is gratis. n Overzicht: http: //maestro-sec. com/blogs/2008/10/top-15 -sql-injection-scanner/ © Copyright Transfer Solutions B. V. 19

Kortom… n SQL Injection is een methode met veel potentie. n U zult wellicht

Kortom… n SQL Injection is een methode met veel potentie. n U zult wellicht veel zeilen moeten bijzetten om SQL Injection te voorkomen. n Laat dit u niet overkomen: http: //xkcd. com/327/ © Copyright Transfer Solutions B. V. 20

info@transfer-solutions. com TRANSFER SOLUTIONS ICT Advisering | Ontwikkeling | Beheer | Opleidingen info@transfer-solutions. com

info@transfer-solutions. com TRANSFER SOLUTIONS ICT Advisering | Ontwikkeling | Beheer | Opleidingen info@transfer-solutions. com | www. transfer-solutions. com