SQL注入新手教程(第一部分)1
MySQL(开源)
MSSQL
S-ACCESS
Oracle
Postgre(开源)
SQLite
In Band(带内注入)
Out of Band(带外注入)
Blind SQLI(盲注)
Error Based Exploitation(基于错误返回的注入)
Union Based Exploitation(基于联合查询的注入)
Boolen Based Exploitation(布尔型注入)
Time Based Exploitation(基于时间延迟注入)
Out of Band Exploitation(带外注入)
Authentication(认证页面)
Search Fields (搜索页面)
Post Fields (Post请求)
Get Fields (Get请求)
HTTP Header(HTTP头部)
Cookie
SELECT | 基于搜索条件从数据库中读取数据 |
INSERT | 将新数据插入数据库 |
UPDATE | 基于给定条件更新已有数据 |
DELETE | 基于给定条件删除已有数据 |
Order By | 对结果集按照升序或降序排列 |
Limit By | 从一个或多个表中检索记录 |
1 | 字符串运算符 | 'or' |
2 | 多行注释 | /*...*/ |
3 | 加号,连接(在URL中等同于空格) | + |
4 | 单行注释 | #或-- |
5 | 双管道(连接) | || |
6 | 通配符 | % |
7 | 局部变量 | @ |
8 | 全局变量 | @@ |
9 | 时延 | waitfor delay '00:00:10' |
10 | 字符串替代数字或数字替代字符串 |
我们可以通过分析错误信息找出数据库类型。
首先从这里下载SQL注入测试平台,并且利用xampp搭建开放SQL注入实验平台。(译者注:可参考这篇博客)
在进入 Dhakkan 实验平台之前,我们先了解一些基础知识。(数据库后端如何执行查询操作?查询是如何形成的?我们如何打破它?到底什么是SQL注入?)
想象一个需要输入用户名和密码的登录页面,当你输入用户名和密码后,后端就会产生并执行一条查询(SQL查询),登录后该查询结果会被显示在我们的主页。
例如:
Username - Raj
Password - Chandel
那么后端查询看起来是这样的:
这完全取决于开发者是如何将参数值封装在SQL查询中的,可以是单引号、双引号和引号与括号结合使用等。所以查询可能看起来会是这样的:
SELECT * FROM table_name WHERE username='Raj' AND password='Chandel';
SELECT * FROM table_name WHERE username=('Raj') AND password=('Chandel');
SELECT * FROM table_name WHERE username="Raj" AND password="Chandel";
SELECT * FROM table_name WHERE username=("Raj") AND password=("Chandel");
或者是开发者选择的任何形式。这里以第一种查询为例进一步解释。
Q :如果输入的用户名为 Raj' 会发生什么?
A:如果输入的用户名为 Raj' ,后台查询看起来会是这样的
由于多了一个引号,所以此处有语法错误。
Q:怎样修复这条查询?可以修复吗?
A:上面的查询可以修复,即使输入的用户名仍为 Raj' 也可以修复。可以通过将 Raj' 后面的查询全部注释掉来修复。所以有效的查询会是这样的
这条查询语法正确
Q:如何将剩余的查询注释掉?
A:这取决于后端的数据库类型。一般情况下使用 -+ 或者 # 。如果输入用户名 Raj'-+ ,完整的后端查询看起来是这样的
但是数据库只会读取并执行这条查询
-+ 后面的所有东西都被注释掉了,不会翻译为这条查询的一部分。这就是SQL注入。使用恶意的输入改变后端查询。
我不知道你是否对此怀有疑问,反正我当时学习的时候,有这样一个疑问:
根据上面的带有注释的查询,我们不需要一个有效的密码就可以登录了吗?
是的,如果开发者没有采取防范SQL注入的措施,并且以上面方式实现查询,那么只有用户名就可能成功登录。
感到很疑惑?别急。接下来的文章我会向你展示具体过程。
本文由 看雪翻译小组 hesir 编译,来源 Hacking Articles@Raj Chandel
明日续更~
如果你喜欢的话,不要忘记点个赞哦!
热门阅读文章:
......
更多优秀文章,长按下方二维码,“关注看雪学院公众号”查看!
看雪论坛:http://bbs.pediy.com/
微信公众号 ID:ikanxue
微博:看雪安全
投稿、合作:www.kanxue.com