Top Banner
Nick Tsamis University of Tulsa CS 7493 April 2013
16

SQL Vulnerabilities

Dec 30, 2015

Download

Documents

Trevor Henry

SQL Vulnerabilities. Nick Tsamis University of Tulsa CS 7493 April 2013. What is SQL? Why SQL Matters. *yawn* What’s the big deal? What could possibly go wrong? SQL Injection XSS Command Execution * pffft * So we shouldn’t use SQL? That’s some smart SQL!. Outline. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SQL Vulnerabilities

Nick TsamisUniversity of TulsaCS 7493April 2013

Page 2: SQL Vulnerabilities

What is SQL? Why SQL Matters. *yawn* What’s the big deal? What could possibly go wrong?

SQL Injection XSS Command Execution

*pffft* So we shouldn’t use SQL? That’s some smart SQL!

Page 3: SQL Vulnerabilities

Structured Query Language Language

Specialized programming language Utilized in relational databases

Query Raw data is queried to obtain information “Our business is turning data into

information.” – Michael A. Peterson

Structured Adheres to a strict, defined format

Query Table Column

Page 4: SQL Vulnerabilities

Relational Databases

vs Hierarchical Databases

• Data relations are stored

• Top down flow only

Page 5: SQL Vulnerabilities

Popularity One of the first commercial languages for

relational models Today, exists as the de facto standard

(ANSI and ISO) It’s EVERYWHERE

Versatility It’s flexible:

T-SQL MySQL LINQ

Page 6: SQL Vulnerabilities

VulnerabilitiesSQL is powerful…if you grant it

Manages data some of which is sensitive Provides a great entry point for access Recovering lost password:

Security is not always implicit Raw SQL can be very vulnerable to simple injections if $EMAIL = “anything' OR 'x'='x”

Page 7: SQL Vulnerabilities

SQL InjectionInjecting unintended code into a query

Returning user name from ID

Source code

The attack We add a second condition that will always

examine true (1=1)

Purpose is to dump all user information

$id = ‘ or 1=1 #

WHERE user_id = ‘ ’ or 1=1 # ’ ”;

Page 8: SQL Vulnerabilities

SQL InjectionInjecting unintended code into a query

Returning sql information

The attack(s) We add a union select to dump additional data

$id = ‘ union SELECT 1, user() # Yields current sql user

$id = ‘ and 1=1 union select database(),version() # Yields current sql version and database name

Page 9: SQL Vulnerabilities

SQL InjectionInjecting unintended code into a query

Case StudyReturning the good stuff!!The attack(s)

We add a union select to dump password data $id = ‘ union select user, password FROM users #

Yields current user and associated password (hash)

Page 10: SQL Vulnerabilities

XSS (Cross Site Scripting)Execute unintended scripts inline

Throw an alert

Passed as a url argument

What if we put an inline script in that url?

Alert box shown:

Page 11: SQL Vulnerabilities

XSS (Cross Site Scripting)Well that wasn’t exactly l33t…

Have a cookie<script>alert(document.cookie)</script>

Alert box shown:

More serious implications: Run a custom script that can open a remote

connection (backdoor) Read and dump configuration data (SQL or OS)

Page 12: SQL Vulnerabilities
Page 13: SQL Vulnerabilities

Better SQL

Stored Procedures Preformat and secure a static query Grant access to a SP, not the tables it accesses

Typically increased performance

Parameter check – data typing No network traffic – run inside the engine

String Filtering/Escaping String escape characters

‘ “ \ NUL

Page 14: SQL Vulnerabilities

Mo’ Better SQL

Parameterized SQL Strongly typed data is bound on execution Parameters are populated and checked User input is not directly embedded

Database Management Permission limitation Principle of Least Privilege

Page 15: SQL Vulnerabilities
Page 16: SQL Vulnerabilities

http://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/Hierarchical_Model.svg/320px-Hierarchical_Model.svg.png

http://www.ibm.com/developerworks/library/x-matters8/relat.gif

http://upload.wikimedia.org/wikipedia/commons/a/aa/SQL_ANATOMY_wiki.svg

http://www.unixwiz.net/techtips/sql-injection.html http://wikipedia.org http://www.codinghorror.com/blog/2005/04/give-me-

parameterized-sql-or-give-me-death.html