sql 注入 原理 和 分析方法

Post on 20-Jan-2016

120 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

SQL注入原理和分析方法

于亮亮Email:liangliang.yu@colasoft.com.cn

内容提纲

“ 谁”推动互联网发展?

黑客在关注什么 ?

SQL注入原理

SQL注入分析方法

“ 谁”推动互联网发展?

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

黑客在关注什么?

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

黑客在关注什么?

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

Web安全事件

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

Web安全事件

CSDN泄密事件的最浪漫故事

什么是 SQL 注入?

SQL 注入攻击

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

SQL 注入的危害

1 、数据泄露

2 、权限绕过

3 、网站沦陷

SQL 注入的危害

SQL 注入的危害

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 语句永远为假,注入语句成功写入

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 语句的结构发生变化,永远为真,那么就成功的绕过了管理验证

常用的 SQL注入工具

SQL注入分析方法

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 ,你可以随意替换一个或几个都可以。

绕过过滤

3. 注释绕过

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

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

谢 谢 !

top related