SlideShare a Scribd company logo
How Bad Guys Hack Into Websites Using Sql Injection
SQL Injection is one of the most common security vulnerabilities on the web. Here Ill try to explain
in detail this kind of vulnerabilities with examples of bugs in PHP and possible solutions.
If you are not so confident with programming languages and web technologies you may be
wondering what SQL stay for. Well, its an acronym for Structured Query Language (pronounced
sequel). Its de facto the standard language to access and manipulate data in databases.
Nowadays most websites rely on a database (usually MySQL) to store and access data.
Our example will be a common login form. Internet surfers see those login forms every day, you
put your username and password in and then the server checks the credentials you supplied. Ok,
thats simple, but what happens exactly on the server when he checks your credentials?
The client (or user) sends to the server two strings, the username and the password.
Usually the server will have a database with a table where the users data are stored. This table
has at least two columns, one to store the username and one for the password. When the server
receives the username and password strings he will query the database to see if the supplied
credentials are valid. He will use an SQL statement for that that may look like this:
SELECT * FROM users WHERE username=SUPPLIED_USER AND
password=SUPPLIED_PASS
For those of you who are not familiar with the SQL language, in SQL the character is used as a
delimiter for string variables. Here we use it to delimit the username and password strings supplied
by the user.
In this example we see that the username and password supplied are inserted into the query
between the and the entire query is then executed by the database engine. If the query returns
any rows, then the supplied credentials are valid (that user exists in the database and has the
password that was supplied).
Now, what happens if a user types a character into the username or password field? Well, by
putting only a into the username field and living the password field blank, the query would
become:
SELECT * FROM users WHERE username= AND password=
This would trigger an error, since the database engine would consider the end of the string at the
second and then it would trigger a parsing error at the third character. Lets now what would
happen if we would send this input data:
Username: OR a='a
Password: OR a='a
The query would become
SELECT * FROM users WHERE username= OR a='a AND password= OR a='a
Since a is always equal to a, this query will return all the rows from the table users and the server
will think we supplied him with valid credentials and let as in the SQL injection was successful .
Now we are going to see some more advanced techniques.. My example will be based on a PHP
and MySQL platform. In my MySQL database I created the following table:
CREATE TABLE users (
username VARCHAR(128),
password VARCHAR(128),
email VARCHAR(128))
Theres a single row in that table with data:
username: testuser
password: testing
email: testuser@testing.com
To check the credentials I made the following query in the PHP code:
$query=select username, password from users where username=.$user. and password=.$pass.;
The server is also configured to print out errors triggered by MySQL (this is useful for debugging,
but should be avoided on a production server).
So, last time I showed you how SQL injection basically works. Now Ill show you how can we make
more complex queries and how to use the MySQL error messages to get more information about
the database structure.
Lets get started! So, if we put just an character in the username field we get an error message like
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near and password= at line 1
Thats because the query became
select username, password from users where username= and password=
What happens now if we try to put into the username field a string like or user=abc ?
The query becomes
select username, password from users where username= or user=abc and password=
And this give us the error message
Unknown column user in where clause
Thats fine! Using these error messages we can guess the columns in the table. We can try to put
in the username field or email= and since we get no error message, we know that the email
column exists in that table. If we know the email address of a user, we can now just try with or
email=testuser@testing.com in both the username and password fields and our query becomes
select username, password from users where username= or email=testuser@testing.com and
password= or email=testuser@testing.com
which is a valid query and if that email address exists in the table we will successfully login!
You can also use the error messages to guess the table name. Since in SQL you can use the
table.column notation, you can try to put in the username field or user.test= and you will see an
error message like
Unknown table user in where clause
Fine! Lets try with or users.test= and we have
Unknown column users.test in where clause
so logically theres a table named users .
Basically, if the server is configured to give out the error messages, you can use them to
enumerate the database structure and then you may be able to use these informations in an
attack.
Copied with permission from: http://plrplr.com/33208/how-bad-guys-hack-into-websites-using-sql-
injection/

More Related Content

What's hot

Claas waqar
Claas waqarClaas waqar
Claas waqar
HSS-Software House
 
Android tutorials7 calculator_packageexploirer
Android tutorials7 calculator_packageexploirerAndroid tutorials7 calculator_packageexploirer
Android tutorials7 calculator_packageexploirer
Vlad Kolesnyk
 
SQL Injections (Part 1)
SQL Injections (Part 1)SQL Injections (Part 1)
SQL Injections (Part 1)
n|u - The Open Security Community
 
SQL INJECTION
SQL INJECTIONSQL INJECTION
SQL INJECTION
Mentorcs
 
Types of sql injection attacks
Types of sql injection attacksTypes of sql injection attacks
Types of sql injection attacks
Respa Peter
 
SQL Injections - A Powerpoint Presentation
SQL Injections - A Powerpoint PresentationSQL Injections - A Powerpoint Presentation
SQL Injections - A Powerpoint Presentation
Rapid Purple
 
Asp
AspAsp
What is advanced SQL Injection? Infographic
What is advanced SQL Injection? InfographicWhat is advanced SQL Injection? Infographic
What is advanced SQL Injection? Infographic
JW CyberNerd
 
SQL Injection attack
SQL Injection attackSQL Injection attack
SQL Injection attack
Rayudu Babu
 
Sql injection
Sql injectionSql injection
Sql injection
Zidh
 
SQL Injection
SQL InjectionSQL Injection
SQL Injection
Magno Logan
 
What is SQL Injection Attack | How to prevent SQL Injection Attacks? | Cybers...
What is SQL Injection Attack | How to prevent SQL Injection Attacks? | Cybers...What is SQL Injection Attack | How to prevent SQL Injection Attacks? | Cybers...
What is SQL Injection Attack | How to prevent SQL Injection Attacks? | Cybers...
Edureka!
 

What's hot (12)

Claas waqar
Claas waqarClaas waqar
Claas waqar
 
Android tutorials7 calculator_packageexploirer
Android tutorials7 calculator_packageexploirerAndroid tutorials7 calculator_packageexploirer
Android tutorials7 calculator_packageexploirer
 
SQL Injections (Part 1)
SQL Injections (Part 1)SQL Injections (Part 1)
SQL Injections (Part 1)
 
SQL INJECTION
SQL INJECTIONSQL INJECTION
SQL INJECTION
 
Types of sql injection attacks
Types of sql injection attacksTypes of sql injection attacks
Types of sql injection attacks
 
SQL Injections - A Powerpoint Presentation
SQL Injections - A Powerpoint PresentationSQL Injections - A Powerpoint Presentation
SQL Injections - A Powerpoint Presentation
 
Asp
AspAsp
Asp
 
What is advanced SQL Injection? Infographic
What is advanced SQL Injection? InfographicWhat is advanced SQL Injection? Infographic
What is advanced SQL Injection? Infographic
 
SQL Injection attack
SQL Injection attackSQL Injection attack
SQL Injection attack
 
Sql injection
Sql injectionSql injection
Sql injection
 
SQL Injection
SQL InjectionSQL Injection
SQL Injection
 
What is SQL Injection Attack | How to prevent SQL Injection Attacks? | Cybers...
What is SQL Injection Attack | How to prevent SQL Injection Attacks? | Cybers...What is SQL Injection Attack | How to prevent SQL Injection Attacks? | Cybers...
What is SQL Injection Attack | How to prevent SQL Injection Attacks? | Cybers...
 

Viewers also liked

Powerpoint 2007
Powerpoint 2007Powerpoint 2007
Powerpoint 2007
mac8301
 
HDPE Pipe
HDPE PipeHDPE Pipe
HDPE Pipe
fuzailahmed240
 
Week 9 slides growth&business cycle [core]
Week 9 slides  growth&business cycle [core]Week 9 slides  growth&business cycle [core]
Week 9 slides growth&business cycle [core]
Nicooooleeee
 
ψηφιακές γειτονιές Affiliate_marketing(2)
ψηφιακές γειτονιές Affiliate_marketing(2)ψηφιακές γειτονιές Affiliate_marketing(2)
ψηφιακές γειτονιές Affiliate_marketing(2)Christos Loufopoulos
 
Brand communities
Brand communitiesBrand communities
Brand communities
Sameer Kunal
 
Od657
Od657Od657

Viewers also liked (6)

Powerpoint 2007
Powerpoint 2007Powerpoint 2007
Powerpoint 2007
 
HDPE Pipe
HDPE PipeHDPE Pipe
HDPE Pipe
 
Week 9 slides growth&business cycle [core]
Week 9 slides  growth&business cycle [core]Week 9 slides  growth&business cycle [core]
Week 9 slides growth&business cycle [core]
 
ψηφιακές γειτονιές Affiliate_marketing(2)
ψηφιακές γειτονιές Affiliate_marketing(2)ψηφιακές γειτονιές Affiliate_marketing(2)
ψηφιακές γειτονιές Affiliate_marketing(2)
 
Brand communities
Brand communitiesBrand communities
Brand communities
 
Od657
Od657Od657
Od657
 

Similar to business articles

Sql Injection
Sql Injection Sql Injection
Sql Injection
Sanjeev Kumar Jaiswal
 
Chapter 14 sql injection
Chapter 14 sql injectionChapter 14 sql injection
Chapter 14 sql injection
newbie2019
 
Mysql
MysqlMysql
Mysql
lotlot
 
Sql Injection Adv Owasp
Sql Injection Adv OwaspSql Injection Adv Owasp
Sql Injection Adv Owasp
Aung Khant
 
Advanced SQL Injection
Advanced SQL InjectionAdvanced SQL Injection
Advanced SQL Injection
amiable_indian
 
SQL Query Interview Questions
SQL Query Interview QuestionsSQL Query Interview Questions
SQL Query Interview Questions
soniajessica2
 
Mysql
MysqlMysql
SQL Injection
SQL Injection SQL Injection
SQL Injection
Adhoura Academy
 
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docxScanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
anhlodge
 
How did i steal your database CSCamp2011
How did i steal your database CSCamp2011How did i steal your database CSCamp2011
How did i steal your database CSCamp2011
Mostafa Siraj
 
Intro to T-SQL – 2nd session
Intro to T-SQL – 2nd sessionIntro to T-SQL – 2nd session
Intro to T-SQL – 2nd session
Medhat Dawoud
 
Sql injection
Sql injectionSql injection
Sql injection
Mehul Boghra
 
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdfDBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
AbhishekKumarPandit5
 
D:\Technical\Ppt\Sql Injection
D:\Technical\Ppt\Sql InjectionD:\Technical\Ppt\Sql Injection
D:\Technical\Ppt\Sql Injection
avishkarm
 
Sql Injection Attacks Siddhesh
Sql Injection Attacks SiddheshSql Injection Attacks Siddhesh
Sql Injection Attacks Siddhesh
Siddhesh Bhobe
 
ORACLE PL/SQL TUTORIALS - OVERVIEW - SQL COMMANDS
ORACLE PL/SQL TUTORIALS - OVERVIEW - SQL COMMANDSORACLE PL/SQL TUTORIALS - OVERVIEW - SQL COMMANDS
ORACLE PL/SQL TUTORIALS - OVERVIEW - SQL COMMANDS
Newyorksys.com
 
Sql injection
Sql injectionSql injection
Sql injection
Nikunj Dhameliya
 
Android database tutorial
Android database tutorialAndroid database tutorial
Android database tutorial
info_zybotech
 
SQL cheat sheet.pdf
SQL cheat sheet.pdfSQL cheat sheet.pdf
SQL cheat sheet.pdf
NiravPanchal50
 
JDBC – Java Database Connectivity
JDBC – Java Database ConnectivityJDBC – Java Database Connectivity
JDBC – Java Database Connectivity
Information Technology
 

Similar to business articles (20)

Sql Injection
Sql Injection Sql Injection
Sql Injection
 
Chapter 14 sql injection
Chapter 14 sql injectionChapter 14 sql injection
Chapter 14 sql injection
 
Mysql
MysqlMysql
Mysql
 
Sql Injection Adv Owasp
Sql Injection Adv OwaspSql Injection Adv Owasp
Sql Injection Adv Owasp
 
Advanced SQL Injection
Advanced SQL InjectionAdvanced SQL Injection
Advanced SQL Injection
 
SQL Query Interview Questions
SQL Query Interview QuestionsSQL Query Interview Questions
SQL Query Interview Questions
 
Mysql
MysqlMysql
Mysql
 
SQL Injection
SQL Injection SQL Injection
SQL Injection
 
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docxScanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
 
How did i steal your database CSCamp2011
How did i steal your database CSCamp2011How did i steal your database CSCamp2011
How did i steal your database CSCamp2011
 
Intro to T-SQL – 2nd session
Intro to T-SQL – 2nd sessionIntro to T-SQL – 2nd session
Intro to T-SQL – 2nd session
 
Sql injection
Sql injectionSql injection
Sql injection
 
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdfDBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
 
D:\Technical\Ppt\Sql Injection
D:\Technical\Ppt\Sql InjectionD:\Technical\Ppt\Sql Injection
D:\Technical\Ppt\Sql Injection
 
Sql Injection Attacks Siddhesh
Sql Injection Attacks SiddheshSql Injection Attacks Siddhesh
Sql Injection Attacks Siddhesh
 
ORACLE PL/SQL TUTORIALS - OVERVIEW - SQL COMMANDS
ORACLE PL/SQL TUTORIALS - OVERVIEW - SQL COMMANDSORACLE PL/SQL TUTORIALS - OVERVIEW - SQL COMMANDS
ORACLE PL/SQL TUTORIALS - OVERVIEW - SQL COMMANDS
 
Sql injection
Sql injectionSql injection
Sql injection
 
Android database tutorial
Android database tutorialAndroid database tutorial
Android database tutorial
 
SQL cheat sheet.pdf
SQL cheat sheet.pdfSQL cheat sheet.pdf
SQL cheat sheet.pdf
 
JDBC – Java Database Connectivity
JDBC – Java Database ConnectivityJDBC – Java Database Connectivity
JDBC – Java Database Connectivity
 

Recently uploaded

一比一原版(QMUE毕业证书)英国爱丁堡玛格丽特女王大学毕业证文凭如何办理
一比一原版(QMUE毕业证书)英国爱丁堡玛格丽特女王大学毕业证文凭如何办理一比一原版(QMUE毕业证书)英国爱丁堡玛格丽特女王大学毕业证文凭如何办理
一比一原版(QMUE毕业证书)英国爱丁堡玛格丽特女王大学毕业证文凭如何办理
taqyea
 
Chapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .pptChapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .ppt
ssuser567e2d
 
Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024
Adnet Communications
 
Best Competitive Marble Pricing in Dubai - ☎ 9928909666
Best Competitive Marble Pricing in Dubai - ☎ 9928909666Best Competitive Marble Pricing in Dubai - ☎ 9928909666
Best Competitive Marble Pricing in Dubai - ☎ 9928909666
Stone Art Hub
 
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
SOFTTECHHUB
 
The Genesis of BriansClub.cm Famous Dark WEb Platform
The Genesis of BriansClub.cm Famous Dark WEb PlatformThe Genesis of BriansClub.cm Famous Dark WEb Platform
The Genesis of BriansClub.cm Famous Dark WEb Platform
SabaaSudozai
 
The latest Heat Pump Manual from Newentide
The latest Heat Pump Manual from NewentideThe latest Heat Pump Manual from Newentide
The latest Heat Pump Manual from Newentide
JoeYangGreatMachiner
 
GKohler - Retail Scavenger Hunt Presentation
GKohler - Retail Scavenger Hunt PresentationGKohler - Retail Scavenger Hunt Presentation
GKohler - Retail Scavenger Hunt Presentation
GraceKohler1
 
Income Tax exemption for Start up : Section 80 IAC
Income Tax  exemption for Start up : Section 80 IACIncome Tax  exemption for Start up : Section 80 IAC
Income Tax exemption for Start up : Section 80 IAC
CA Dr. Prithvi Ranjan Parhi
 
Top 10 Free Accounting and Bookkeeping Apps for Small Businesses
Top 10 Free Accounting and Bookkeeping Apps for Small BusinessesTop 10 Free Accounting and Bookkeeping Apps for Small Businesses
Top 10 Free Accounting and Bookkeeping Apps for Small Businesses
YourLegal Accounting
 
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta MatkaDpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
➒➌➎➏➑➐➋➑➐➐Dpboss Matka Guessing Satta Matka Kalyan Chart Indian Matka
 
DearbornMusic-KatherineJasperFullSailUni
DearbornMusic-KatherineJasperFullSailUniDearbornMusic-KatherineJasperFullSailUni
DearbornMusic-KatherineJasperFullSailUni
katiejasper96
 
Top mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptxTop mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptx
JeremyPeirce1
 
Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431
ecamare2
 
一比一原版新西兰奥塔哥大学毕业证(otago毕业证)如何办理
一比一原版新西兰奥塔哥大学毕业证(otago毕业证)如何办理一比一原版新西兰奥塔哥大学毕业证(otago毕业证)如何办理
一比一原版新西兰奥塔哥大学毕业证(otago毕业证)如何办理
taqyea
 
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your TasteZodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
my Pandit
 
2022 Vintage Roman Numerals Men Rings
2022 Vintage Roman  Numerals  Men  Rings2022 Vintage Roman  Numerals  Men  Rings
2022 Vintage Roman Numerals Men Rings
aragme
 
Dpboss Matka Guessing Satta Matta Matka Kalyan panel Chart Indian Matka Dpbos...
Dpboss Matka Guessing Satta Matta Matka Kalyan panel Chart Indian Matka Dpbos...Dpboss Matka Guessing Satta Matta Matka Kalyan panel Chart Indian Matka Dpbos...
Dpboss Matka Guessing Satta Matta Matka Kalyan panel Chart Indian Matka Dpbos...
➒➌➎➏➑➐➋➑➐➐Dpboss Matka Guessing Satta Matka Kalyan Chart Indian Matka
 
TIMES BPO: Business Plan For Startup Industry
TIMES BPO: Business Plan For Startup IndustryTIMES BPO: Business Plan For Startup Industry
TIMES BPO: Business Plan For Startup Industry
timesbpobusiness
 
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel ChartSatta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
➒➌➎➏➑➐➋➑➐➐Dpboss Matka Guessing Satta Matka Kalyan Chart Indian Matka
 

Recently uploaded (20)

一比一原版(QMUE毕业证书)英国爱丁堡玛格丽特女王大学毕业证文凭如何办理
一比一原版(QMUE毕业证书)英国爱丁堡玛格丽特女王大学毕业证文凭如何办理一比一原版(QMUE毕业证书)英国爱丁堡玛格丽特女王大学毕业证文凭如何办理
一比一原版(QMUE毕业证书)英国爱丁堡玛格丽特女王大学毕业证文凭如何办理
 
Chapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .pptChapter 7 Final business management sciences .ppt
Chapter 7 Final business management sciences .ppt
 
Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024Lundin Gold Corporate Presentation - June 2024
Lundin Gold Corporate Presentation - June 2024
 
Best Competitive Marble Pricing in Dubai - ☎ 9928909666
Best Competitive Marble Pricing in Dubai - ☎ 9928909666Best Competitive Marble Pricing in Dubai - ☎ 9928909666
Best Competitive Marble Pricing in Dubai - ☎ 9928909666
 
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
Hamster Kombat' Telegram Game Surpasses 100 Million Players—Token Release Sch...
 
The Genesis of BriansClub.cm Famous Dark WEb Platform
The Genesis of BriansClub.cm Famous Dark WEb PlatformThe Genesis of BriansClub.cm Famous Dark WEb Platform
The Genesis of BriansClub.cm Famous Dark WEb Platform
 
The latest Heat Pump Manual from Newentide
The latest Heat Pump Manual from NewentideThe latest Heat Pump Manual from Newentide
The latest Heat Pump Manual from Newentide
 
GKohler - Retail Scavenger Hunt Presentation
GKohler - Retail Scavenger Hunt PresentationGKohler - Retail Scavenger Hunt Presentation
GKohler - Retail Scavenger Hunt Presentation
 
Income Tax exemption for Start up : Section 80 IAC
Income Tax  exemption for Start up : Section 80 IACIncome Tax  exemption for Start up : Section 80 IAC
Income Tax exemption for Start up : Section 80 IAC
 
Top 10 Free Accounting and Bookkeeping Apps for Small Businesses
Top 10 Free Accounting and Bookkeeping Apps for Small BusinessesTop 10 Free Accounting and Bookkeeping Apps for Small Businesses
Top 10 Free Accounting and Bookkeeping Apps for Small Businesses
 
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta MatkaDpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
 
DearbornMusic-KatherineJasperFullSailUni
DearbornMusic-KatherineJasperFullSailUniDearbornMusic-KatherineJasperFullSailUni
DearbornMusic-KatherineJasperFullSailUni
 
Top mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptxTop mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptx
 
Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431Observation Lab PowerPoint Assignment for TEM 431
Observation Lab PowerPoint Assignment for TEM 431
 
一比一原版新西兰奥塔哥大学毕业证(otago毕业证)如何办理
一比一原版新西兰奥塔哥大学毕业证(otago毕业证)如何办理一比一原版新西兰奥塔哥大学毕业证(otago毕业证)如何办理
一比一原版新西兰奥塔哥大学毕业证(otago毕业证)如何办理
 
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your TasteZodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
Zodiac Signs and Food Preferences_ What Your Sign Says About Your Taste
 
2022 Vintage Roman Numerals Men Rings
2022 Vintage Roman  Numerals  Men  Rings2022 Vintage Roman  Numerals  Men  Rings
2022 Vintage Roman Numerals Men Rings
 
Dpboss Matka Guessing Satta Matta Matka Kalyan panel Chart Indian Matka Dpbos...
Dpboss Matka Guessing Satta Matta Matka Kalyan panel Chart Indian Matka Dpbos...Dpboss Matka Guessing Satta Matta Matka Kalyan panel Chart Indian Matka Dpbos...
Dpboss Matka Guessing Satta Matta Matka Kalyan panel Chart Indian Matka Dpbos...
 
TIMES BPO: Business Plan For Startup Industry
TIMES BPO: Business Plan For Startup IndustryTIMES BPO: Business Plan For Startup Industry
TIMES BPO: Business Plan For Startup Industry
 
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel ChartSatta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
 

business articles

  • 1. How Bad Guys Hack Into Websites Using Sql Injection SQL Injection is one of the most common security vulnerabilities on the web. Here Ill try to explain in detail this kind of vulnerabilities with examples of bugs in PHP and possible solutions. If you are not so confident with programming languages and web technologies you may be wondering what SQL stay for. Well, its an acronym for Structured Query Language (pronounced sequel). Its de facto the standard language to access and manipulate data in databases. Nowadays most websites rely on a database (usually MySQL) to store and access data. Our example will be a common login form. Internet surfers see those login forms every day, you put your username and password in and then the server checks the credentials you supplied. Ok, thats simple, but what happens exactly on the server when he checks your credentials? The client (or user) sends to the server two strings, the username and the password. Usually the server will have a database with a table where the users data are stored. This table has at least two columns, one to store the username and one for the password. When the server receives the username and password strings he will query the database to see if the supplied credentials are valid. He will use an SQL statement for that that may look like this: SELECT * FROM users WHERE username=SUPPLIED_USER AND password=SUPPLIED_PASS For those of you who are not familiar with the SQL language, in SQL the character is used as a delimiter for string variables. Here we use it to delimit the username and password strings supplied by the user. In this example we see that the username and password supplied are inserted into the query between the and the entire query is then executed by the database engine. If the query returns any rows, then the supplied credentials are valid (that user exists in the database and has the password that was supplied). Now, what happens if a user types a character into the username or password field? Well, by putting only a into the username field and living the password field blank, the query would become: SELECT * FROM users WHERE username= AND password= This would trigger an error, since the database engine would consider the end of the string at the second and then it would trigger a parsing error at the third character. Lets now what would
  • 2. happen if we would send this input data: Username: OR a='a Password: OR a='a The query would become SELECT * FROM users WHERE username= OR a='a AND password= OR a='a Since a is always equal to a, this query will return all the rows from the table users and the server will think we supplied him with valid credentials and let as in the SQL injection was successful . Now we are going to see some more advanced techniques.. My example will be based on a PHP and MySQL platform. In my MySQL database I created the following table: CREATE TABLE users ( username VARCHAR(128), password VARCHAR(128), email VARCHAR(128)) Theres a single row in that table with data: username: testuser password: testing email: testuser@testing.com To check the credentials I made the following query in the PHP code: $query=select username, password from users where username=.$user. and password=.$pass.; The server is also configured to print out errors triggered by MySQL (this is useful for debugging, but should be avoided on a production server). So, last time I showed you how SQL injection basically works. Now Ill show you how can we make more complex queries and how to use the MySQL error messages to get more information about
  • 3. the database structure. Lets get started! So, if we put just an character in the username field we get an error message like You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near and password= at line 1 Thats because the query became select username, password from users where username= and password= What happens now if we try to put into the username field a string like or user=abc ? The query becomes select username, password from users where username= or user=abc and password= And this give us the error message Unknown column user in where clause Thats fine! Using these error messages we can guess the columns in the table. We can try to put in the username field or email= and since we get no error message, we know that the email column exists in that table. If we know the email address of a user, we can now just try with or email=testuser@testing.com in both the username and password fields and our query becomes select username, password from users where username= or email=testuser@testing.com and password= or email=testuser@testing.com which is a valid query and if that email address exists in the table we will successfully login! You can also use the error messages to guess the table name. Since in SQL you can use the table.column notation, you can try to put in the username field or user.test= and you will see an error message like Unknown table user in where clause Fine! Lets try with or users.test= and we have Unknown column users.test in where clause
  • 4. so logically theres a table named users . Basically, if the server is configured to give out the error messages, you can use them to enumerate the database structure and then you may be able to use these informations in an attack. Copied with permission from: http://plrplr.com/33208/how-bad-guys-hack-into-websites-using-sql- injection/