Hoe SQL injection werkt

Slides:



Advertisements
Verwante presentaties
Applicatieplatform congres 12 & 13 maart
Advertisements

Waitstats 2005/ april Wat gaan we doen? • Even voorstellen • Performance problemen • Een veel gebruikte aanvliegroute • Wat zijn waitstats.
Atos, Atos and fish symbol, Atos Origin and fish symbol, Atos Consulting, and the fish itself are registered trademarks of Atos Origin SA. August 2006.
Installatie & beheer Jonathan Mohnen Martijn Wolfs.
Social Technographics Hoe ontwikkel je een succesvolle social media strategie? Reineke Reitsma Director, Consumer Technographics Forrester Research 11.
Access en MySql Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Customer confidential
Lucene/SOLR 1: inleiding + indexering
Frédérique Harmsze - Macaw 22 juni Wie ben ik?  Frédérique Harmsze  Information Worker Consultant bij Macaw sinds 2004  Intranet-projecten met.
SQL VOOR BIOLOGEN © 2011 M.L. Hekkelman CMBI Radboud UMC.
Biml en Data Vault.
Corporate Communications February 2011 Succesvol met Outsourcing Gerben Edelijn, CEO Thales Nederland.
Presentatie IA Solutions 2005: Programma generatie voor: PLC en SCADA Een update van deze PPT is te downloaden op: Rob Kits - Technisch.
HIV, work and stigma 2013, Kerkrade Ronald A.M. Brands LLM Policy officer on Social and Legal advocacy.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Faculteit Ingenieurswetenschappen & Wetenschappen Software Engineering Publicatie Management Systeem Groep se1 Software Engineering Thierry Coppens.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
XBRL / SBR Train de Trainer sessie Deel 2 A (van 3) 28 november 2012 SBR-Team Vanaf 1 januari 2013 is SBR de standaard voor financiële rapportages.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Inleiding Databanken: oefeningen
Woensdag 23 juli 2014 volgende vorige algemeen ziekenhuis Sint-Jozef Malle Dementia pathway: a condition specific approach Patrick De Wit, MD Thierry Laporta,
1 Toegepaste Informatica Keuzevak C++ 3°jaar. 2 Studiefiche  Software  Boek (hfst 3-5)  Presentatie (website)
1 FLOWer Referenties Functionaliteit: Componenten Role model Data handling model Demonstratie Studio en Beheeromgeving Architectuur en integratie UWV architectuur.
Lezingenreeks : weefsels Introductie wiki. Wat is een wiki? Wiki From Wikipedia, the free encyclopedia A wiki is computer software that allows users to.
SPLA Service Provider License Agreement
© 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied,
Microsoft Partner Programma & Applicatie testen
Client Management met ConfigMgr Jannes Alink – Management.
Werken aan Intergenerationele Samenwerking en Expertise.
Hibernate Object relational mapping
HOM - COM Ledenvergadering 08 / 10 / Soluto bootversneller Link software: Link naar filmke:
HOM - COM Ledenvergadering 08 / 10 / Easeus-Partition-Master- Home-Edition Link software: Master-Home-Edition/ _4-
Workshop PHP Een productencatalogus Met database.
Automation SolutionsMFG/Pro Dutch usergroup 8 februari 2007 ISA S88 & S95 Het gebruik van deze normen in de productie.
DB&SQL8- 1 VBA Visual Basics for Applications: eigen Office versie vanaf Office2000 gelijk voor alle applicaties Programmeren onder meer nodig voor Het.
1 Bedrijven zouden geen gegevensbanken mogen aanleggen.
Visual Basic.Net - Overzicht
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  D3EEMS1  programmed I/O: de.
Boom uitgevers Den Haag. Korte presentatie BJu en de digitale wereld Onze visie op digitaal in het Hoger Onderwijs? En-en: boek plus digitaal (inclusief.
1 Over het examen (1): Modus Mondeling met schriftelijke voorbereiding 4 uur, 3 onderdelen: –Modellering (  schriftelijk, dan mondeling) –Queries / relationeel.
Hands-on sessie; Weblog aanmaken Gerard Bierens Fontys Mediatheek webcoördinator Persoonlijke blog: weblogzonderhaast.nl Professionele blog: fontysmediatheek.nl.
Microsoft Operations Manager & Scripting
Cursus performance tuning voor ontwikkelaars 26 januari 2006 “De beste manier om een query te verbeteren, is door hem niet uit te voeren.”
ACE Case Oracle 11g Release 2 voor ontwikkelaars Rob van Wijk 17 november 2009.
1 Oracle InterConnect - Pagoni files - KC Server Development & Programming Languages 11 mei 2006 Harm Verschuren.
1 december KC Development Tools Hands-on Oracle HTML DB v2.0.
1 december KC Development Tools Oracle HTML DB 2.0.
1 Okt 4, 2005 Oracle en XML. 2 Okt 4, 2005 xml in database Datatype XMLTYPE  hét xml datatype in de database CLOB, varchar2... Opslag XMLType (Object)tabel.
1 De ontdekking van Web 2.0 Presentatie Team Ordina type hier de datum 19 april 2007.
Benjamin Boerebach, Esther Helmich NVMO workshop 12 juni 2014.
Link Popularity Het principe van linkpopulariteit kun je als volgt samenvatten: hoe meer webpagina's er naar een bepaalde webpagina linken, des te belangrijker.
Dick Dijkstra Azure Technical Specialist Microsoft
Homcom Ledenvergadering 23 april Google Man TV programma Scheire en de schepping Doet beroep op “ Google-man ” Wij kennen reeds lang een google-man.
SQL ( SERVER ) Les #02: T-SQL. A GENDA Herhaling les 4 Views SELECT…INTO Beheren van tabellen: CREATE ALTER DROP Opdracht voor de volgende les.
Computervaardigheden Hoofdstuk 4 — Databank (Basis)
Iedereen is context driven!
1 July SQL Les July Agenda Herhaling Herhaling Stored Procedures Stored Procedures Oefeningen Oefeningen User Defined Functions User.
2 August SQL Les August Agenda Herhaling Herhaling Cursors Cursors MS SQL Server and MS Excel MS SQL Server and MS Excel Oefeningen.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Wat is SQL (1)? SQL (Structured Query Language):  is een zeer krachtige taal met een beperkt vocabulaire (aantal ‘woorden’)  is declaratief (‘WAT’ niet.
SQL Performance Analyzer Inschatten performance impact van wijzigingen Bram van der Vos
LPI 1.05 Marcel Nijenhof. Agenda ● Customize and use the shell environment ● Customize or write simple scripts ● SQL data management.
Software Development fundamentals
Software Development fundamentals
SQL Les February 2019.
SQL Les February 2019.
SQL Les 9 12 May 2019.
SQL Les May 2019.
Solving Linear Systems by Graphing Part 2 How Many Solutions?
Chapter 1: Introduction
Transcript van de presentatie:

Hoe SQL injection werkt 4-4-2017 Hoe SQL injection werkt Door: Marcel-Jan Krijgsman

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. © Copyright Transfer Solutions B.V.

4-4-2017 SQL injection Het draait allemaal om invoer.

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

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

’ De kracht van quotes Bij SQL Injection draait alles om quote tekens. 4-4-2017 ’ De kracht van quotes Bij SQL Injection draait alles om quote tekens. © Copyright Transfer Solutions B.V.

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 FIRSTNAME PACKAGE ----------- ----------- ------------------ Blofeld Ernst Stavr Care Extralux Bond James Care Basic Potter Harry Care Basic Plus Skywalker Luke Care Basic Plus Vader Darth Care VIP etc.. etc..

select * from verzekering where achternaam='Potter'; 4-4-2017 Eens kijken of men hier de rechten beperkt heeft… select * from verzekering where achternaam='Potter'; select * from dba_users where 'x'='x'; Dit werkt alleen als de ; ook doorgegeven wordt door de applicatie heen.

select * from verzekering where achternaam='Potter'; 4-4-2017 select * from verzekering where achternaam='Potter'; select * from dba_users where 'x'='x'; SURNAME FIRSTNAME PACKAGE ----------- ----------- ------------------ Potter Harry Care Plus USERNAME PASSWORD ACCOUNT_STATUS ---------- ---------------- -------------- SYS 5638228DAF52805F OPEN SYSTEM D4DF7931AB130E37 OPEN etc.. etc..

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. © Copyright Transfer Solutions B.V.

4-4-2017 Een nieuwsgierige binnendringer hoeft nu alleen maar de puzzelstukjes bij elkaar te zoeken om te achterhalen hoe bij uw data te komen.

4-4-2017 Preventie Hoe voorkomen we SQL Injection?

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

select * from verzekering where achternaam= :BIND; 4-4-2017 Bind variables select * from verzekering where achternaam= :BIND; Met bind variables voorkomt u dat stukken SQL achter elkaar geplakt worden. © Copyright Transfer Solutions B.V.

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

CREATE ANY MATERIALIZED VIEW ALTER USER CREATE DIRECTORY AUDIT SYSTEM CREATE SPFILE CREATE SPFILE ALTER ANY SQL PROFILE 4-4-2017 ANALYZE ANY CREATE ANY PROCEDURE ALTER ANY CLUSTER ALTER SYSTEM CREATE ANY MATERIALIZED VIEW ALTER USER CREATE DIRECTORY AUDIT SYSTEM SELECT ANY DICTIONARY CREATE EXTERNAL JOB ALTER ANY PROCEDURE CREATE DATABASE LINK CREATE USER DEBUG CONNECT SESSION CREATE LIBRARY ALTER ANY TABLE The DBA role FLASHBACK ANY TABLE CREATE ANY OPERATOR FORCE TRANSACTION GRANT ANY PRIVILEGE SELECT ANY TRANSACTION ALTER ANY INDEX CREATE DATABASE GRANT ANY OBJECT PRIVILEGE “Voor deze applicatie hebben we de DBA rol nodig”, zeggen sommige leveranciers van applicatie of ontwikkelaars. Dat is heel, heel, heel erg onwaarschijnlijk. Het is namelijk heel, heel, heel onwaarschijnlijk dat de applicatie de ruim honderden verschillende system privileges nodig heeft om te kunnen functioneren. In deze sheet ziet u slechts een kleine subset van rechten die aan de DBA rol hangen. Welke rechten de applicatie dan wel nodig heeft, zal uitgezocht moeten worden en dat kost meestal de nodige manuren. Laat de leverancier deze manuren besteden en met een veilige set van benodigde rechten komen. DROP ANY TRIGGER DROP DATABASE CREATE ANY INDEX ALTER ANY SQL PROFILE FORCE TRANSACTION CREATE SPFILE GLOBAL QUERY REWRITE CREATE INDEXTYPE UNLIMITED TABLESPACE CREATE ANY CONTEXT ALTER DATABASE DROP ANY VIEW CREATE DIMENSION CREATE TABLESPACE © Copyright Transfer Solutions B.V.

Toepassen minimale rechten 4-4-2017 Toepassen minimale rechten objects APP_PCK APP_TABLE create procedure execute on app_pck create table Schema eigenaars zijn Oracle users die recht hebben objecten aan te maken, aan te passen en verwijderen. Gebruikers die aanloggen hebben die rechten normaal gesproken niet nodig. In plaats daarvan krijgen zij een user met rechten op de objecten van de schema eigenaar. Die rechten kunnen ook in een role opgenomen worden. create session create session APP_USER APP_OWNER

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/ © Copyright Transfer Solutions B.V.

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/ © Copyright Transfer Solutions B.V.

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