sql 注入 原理 和 分析方法

25
SQL 注注注注注注注注注 于于于 Email:liangliang.yu@colaso ft.com.cn

Upload: bena

Post on 20-Jan-2016

118 views

Category:

Documents


0 download

DESCRIPTION

SQL 注入 原理 和 分析方法. 于亮亮 Email:[email protected]. 内容提纲. SQL 注入原理. SQL 注入分析方法. “谁”推动互联网发展?. Web 发展历史. 2012 年第四季度全球新增域名数量超过 610 万,而截至 2012 年 12 月 31 日所有顶级域名以下的域名总数则超过 2.52 亿。. 黑客在关注什么?. 黑客在关注什么(来自Imperva报告). 黑客在关注什么?. Web 安全事件. 雅虎服务器被黑 45.3 万份用户信息遭泄露. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SQL 注入 原理 和 分析方法

SQL注入原理和分析方法

于亮亮Email:[email protected]

Page 2: SQL 注入 原理 和 分析方法

内容提纲

“ 谁”推动互联网发展?

黑客在关注什么 ?

SQL注入原理

SQL注入分析方法

Page 3: SQL 注入 原理 和 分析方法

“ 谁”推动互联网发展?

Page 4: SQL 注入 原理 和 分析方法

Web发展历史2012 年第四季度全球新增域名数量超过 610 万,而截至 2012 年12 月 31 日所有顶级域名以下的域名总数则超过 2.52 亿。

Page 5: SQL 注入 原理 和 分析方法

黑客在关注什么?

Page 6: SQL 注入 原理 和 分析方法

黑客在关注什么(来自 Imperva报告)

Page 7: SQL 注入 原理 和 分析方法

黑客在关注什么?

Page 8: SQL 注入 原理 和 分析方法

Web安全事件雅虎服务器被黑 45.3 万份用户信息遭泄露2012 年 7 月中旬,据悉,黑客们公布了他们声称的雅虎 45.34 万名用户的认证信息,还有超过 2700 个数据库表或数据库表列的姓名以及298 个 MySQL 变量。他们称,以上内容均是在此次入侵行动中获得的。黑客们利用特殊的 SQL 注入方式渗透到雅虎网站的子区域中以获取信息。该技术专门针对一些安全性较差的网站应用程序进行攻击,这些程序并不仔细检查进入搜索框和其他用户输入栏的文本。通过向其注入有效地数据库指令,攻击者便可欺骗后端服务器,还可向其信息转储大量的敏感信息。

Page 9: SQL 注入 原理 和 分析方法

Web安全事件

2011 年 12 月, CSDN的安全系统遭到黑客攻击, 600 万用户的登录名、密码及邮箱遭到泄漏。随后, CSDN" 密码外泄门 " 持续发酵,天涯、世纪佳缘等网站相继被曝用户数据遭泄密。天涯网于 12 月 25 日发布致歉信,称天涯 4000 万用户隐私遭到黑客泄露。此次失窃的只是密码集,用户只要及时修改密码即可避免隐私失窃,因此不用恐慌。但用户修改密码只是“治标”,网站改变数据存放策略才是“治本”。

Page 10: SQL 注入 原理 和 分析方法

Web安全事件

CSDN泄密事件的最浪漫故事

Page 11: SQL 注入 原理 和 分析方法

什么是 SQL 注入?

Page 12: SQL 注入 原理 和 分析方法

SQL 注入攻击

SQL 注入攻击 (SQL Injection) ,是攻击者在向服务器提交请求的参数中提交精心构造的 SQL 语句,改变原来的 SQL 语句结构,如果 web 程序没有对提交的数据进行检查,那么就会造成 SQL 注入攻击。

Page 13: SQL 注入 原理 和 分析方法

SQL 注入的危害

1 、数据泄露

2 、权限绕过

3 、网站沦陷

Page 14: SQL 注入 原理 和 分析方法

SQL 注入的危害

Page 15: SQL 注入 原理 和 分析方法

SQL 注入的危害

Page 16: SQL 注入 原理 和 分析方法

SQL 注入的危害

Page 17: SQL 注入 原理 和 分析方法

SQL 注入的危害

例 1 :select id , title from xxx where id= { 提交的参数id}

当提交参数 &id=123 and 1=2, 我们的 SQL 语句就变成:

select id , title from xxx where id=123 and 1=2

改变了原有条件,导致 sql 语句永远为假,注入语句成功写入

Page 18: SQL 注入 原理 和 分析方法

Sql注入原理

例 2 :Select * from admin where username=‘{ 提交的用户名 } ‘ and Password=‘{ 提交的密码 }’;

当提交的 &username=‘ or 1=1 -- 时,我们的 SQL 语句变成:

Select * from admin where username=‘‘ or 1=1 -- ‘ and Password=‘{ 提交的密码 }’;

假设这是登录时使用的 SQL 语句, -- 后面的绿色内容被注释掉, SQL 语句的结构发生变化,永远为真,那么就成功的绕过了管理验证

Page 19: SQL 注入 原理 和 分析方法

常用的 SQL注入工具

Page 20: SQL 注入 原理 和 分析方法

SQL注入分析方法

Page 21: SQL 注入 原理 和 分析方法

SQL分析方法

Page 22: SQL 注入 原理 和 分析方法

分析方法

Page 23: SQL 注入 原理 和 分析方法

黑客如何绕过过滤

经过收集,大部分的防注入程序都过滤了以下关键字: and | select | update | chr | delete | %20from | ; | insert | mid | master. | set | =

  1. 大小写绕过

 比如 WAF 检测关键字,那么我们让他检测不到就可以了。比如检测 union ,那么我们就用 %55也就是 U 的 16 进制编码来代替U , union写成 %55nION ,结合大小写也可以绕过一些WAF ,你可以随意替换一个或几个都可以。

2.简单编码绕过

 比如 WAF 检测关键字,那么我们让他检测不到就可以了。比如检测 union ,那么我们就用 %55也就是 U 的 16 进制编码来代替U , union写成 %55nION ,结合大小写也可以绕过一些WAF ,你可以随意替换一个或几个都可以。

Page 24: SQL 注入 原理 和 分析方法

绕过过滤

3. 注释绕过

id=1+un/**/ion+sel/**/ect+1,2,3--

4.比较操作符替换  包括 != 不等于, <> 不等于, < 小于, > 大于,这些都可以用来替换= 来绕过。  比如上一个例子,要判断是不是 74 ,假设= 被过滤,那么我们可以判断是不是大于 73 ,是不是小于 75 ,然后就知道是 74 了。。很多WAF都会忘了这个。

Page 25: SQL 注入 原理 和 分析方法

谢 谢 !