![Page 1: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/1.jpg)
Hoe SQL injection werkt
Door: Marcel-Jan Krijgsman
![Page 2: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/2.jpg)
SQL Injection
Een methode die gebruik maakt van invoer in de applicatie: invoervelden, argumenten in code, etc..
SQL Injection werkt doordat een hacker SQL code toevoegt aan de SQL die de applicatie uitvoert.
Traditionele firewalls en virusscanners kunnen SQL Injection niet tegenhouden.
2© Copyright Transfer Solutions B.V.
![Page 3: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/3.jpg)
SQL injection
![Page 4: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/4.jpg)
select * from verzekeringwhere achternaam='Potter';
Normaal gebruik van een applicatie
![Page 5: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/5.jpg)
select * from verzekeringwhere achternaam='Potter';
SURNAME FIRSTNAME PACKAGE----------- ----------- ------------------Potter Harry Care Plus
![Page 6: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/6.jpg)
6© Copyright Transfer Solutions B.V.
De kracht van quotes
’
![Page 7: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/7.jpg)
select * from verzekeringwhere achternaam='Potter' or
'x'='x';
Een voorbeeld van SQL injection
![Page 8: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/8.jpg)
select * from verzekeringwhere achternaam='Potter' or
'x'='x';
SURNAME FIRSTNAME PACKAGE----------- ----------- ------------------Blofeld Ernst Stavr Care ExtraluxBond James Care BasicPotter Harry Care Basic PlusSkywalker Luke Care Basic PlusVader Darth Care VIPetc.. etc..
![Page 9: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/9.jpg)
select * from verzekeringwhere achternaam='Potter';select * from dba_users where 'x'='x';
Eens kijken of men hier de rechten beperkt heeft…
![Page 10: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/10.jpg)
SURNAME FIRSTNAME PACKAGE
----------- ----------- ------------------
Potter Harry Care Plus
USERNAME PASSWORD ACCOUNT_STATUS---------- ---------------- --------------SYS 5638228DAF52805F OPENSYSTEM D4DF7931AB130E37 OPENetc.. etc..
select * from verzekeringwhere achternaam='Potter';select * from dba_users where 'x'='x';
![Page 11: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/11.jpg)
Creatief met SQL Injection
or 'x'='x : laat mijn conditie zien of alles. ; gebruiken om een statement voortijdig te beëindigen of
andere statements te laten volgen. UNION: compleet andere tabellen bij resultaat voegen.
11© Copyright Transfer Solutions B.V.
![Page 12: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/12.jpg)
![Page 13: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/13.jpg)
Preventie
![Page 14: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/14.jpg)
1.
Voorkomen dat SQL injection constructies toegestaan zijn in de applicatie.
![Page 15: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/15.jpg)
15© Copyright Transfer Solutions B.V.
select * from verzekeringwhere achternaam= :BIND;
Bind variables
![Page 16: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/16.jpg)
Rechten in de database beperken tot
het strikt nodige.2.
![Page 17: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/17.jpg)
17© Copyright Transfer Solutions B.V.
The DBA role
DROP DATABASECREATE SPFILE
CREATE SPFILE CREATE SPFILE
ALTER DATABASE
ALTER ANY CLUSTER
CREATE DIRECTORY
CREATE DATABASE LINK
GRANT ANY PRIVILEGE
GRANT ANY OBJECT PRIVILEGE
ALTER ANY SQL PROFILE
ALTER ANY SQL PROFILE
CREATE ANY CONTEXT
ALTER SYSTEM
AUDIT SYSTEM
DEBUG CONNECT SESSIONALTER ANY TABLE
CREATE DIMENSION
CREATE INDEXTYPE
CREATE ANY INDEX
ALTER ANY INDEX
CREATE LIBRARY
CREATE EXTERNAL JOB
CREATE ANY MATERIALIZED VIEW
GLOBAL QUERY REWRITE
FLASHBACK ANY TABLECREATE ANY OPERATOR
CREATE ANY PROCEDURE
ALTER ANY PROCEDURE
CREATE TABLESPACEUNLIMITED TABLESPACE
DROP ANY TRIGGER
CREATE USER
ALTER USER
DROP ANY VIEW
FORCE TRANSACTIONCREATE DATABASE
ANALYZE ANY
SELECT ANY DICTIONARY
SELECT ANY TRANSACTION
FORCE TRANSACTION
![Page 18: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/18.jpg)
APP_USERcreate session
APP_OWNERcreate session
create table
objects
APP_TABLE
APP_PCK
create procedure
execute on app_pck
Toepassen minimale rechten
![Page 19: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/19.jpg)
SQL injection detectie
Er is software om SQL Injection in webapplicaties te detecteren.
Een aantal daarvan is gratis. Overzicht:
http://maestro-sec.com/blogs/2008/10/top-15-sql-injection-scanner/
19© Copyright Transfer Solutions B.V.
![Page 20: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/20.jpg)
Kortom…
SQL Injection is een methode met veel potentie. U zult wellicht veel zeilen moeten bijzetten om SQL
Injection te voorkomen.
Laat dit u niet overkomen: http://xkcd.com/327/
20© Copyright Transfer Solutions B.V.
![Page 21: Hoe SQL injection werkt Door: Marcel-Jan Krijgsman](https://reader036.vdocuments.mx/reader036/viewer/2022062405/5551a0ee4979591f3c8b7d09/html5/thumbnails/21.jpg)
[email protected] | www.transfer-solutions.com
TRANSFER SOLUTIONSICT Advisering | Ontwikkeling | Beheer | Opleidingen