ImageVerifierCode 换一换
格式:PPT , 页数:43 ,大小:739KB ,
资源ID:10299002      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/10299002.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(SQL注入漏洞基础.ppt)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

SQL注入漏洞基础.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,01SQL注入漏洞基础,SQL注入背景简介,SQL注入攻击原理,SQL注入分类,SQL注入渗透测试框架,SQL盲注入,SQL登录绕过攻击,总结,培训提纲,SQL注入背景介绍,SQL注入背景简介,什么是SQL?,SQL=Structured Query Language 结构化查询语言,SQL语言提供了我们访问操作数据库的能力,分为:,-,DML(Data Manipulation Language,数据操作语言),-,DDL(Data Definition Language,数据定义语言),-,DCL(Da

2、ta Control Language,数据控制语言),-,DQL(Data Query Language,数据查询语言),SQL,能够:,-,执行对数据库的查询,DQL,-,插入修改删除数据库数据,DML,-,定义数据库实体对象结构,DDL,-,设置或更改数据库用户角色权限信息等,DCL,SQL注入背景简介,产生背景,SQL,注入的出现是,Web,安全史上的一个里程碑,它大概出现在,1999,年,并很快就成为,Web,安全的头号大敌。,黑客们发现通过,SQL,注入攻击,可以获取很多重要的、敏感的数据,甚至能够获取系统访问权限,这种效果并不比直接攻击系统软件差,,Web,攻击一下子就流行起来。

3、SQL注入攻击原理,SQL注入攻击原理,Web,应用工作原理,SQL注入攻击原理,Web,应用工作原理,SQL注入攻击原理,攻击原理,注入攻击的根源在于用户数据与程序代码没有分离,使得攻击者有机会将程序代码当作用户输入数据提交给Web应用程序执行。SQL注入作为注入攻击的一种,Web应用程序动态生成SQL命令时没有对用户输入的数据进行验证过滤,使得用户输入的SQL语句得以执行。,SQL注入攻击原理,示例代码,id=,request.QueryString(“id”),;,set rs=server.createobject(“adodb.recordset”);,sql=“select*fr

4、om admin where id=”&,id,;,说明:第一行代码获取HTTP请求的查询字符串数据(外部数据)id,并把该id直接用于SQL语句拼串,这样对用户数据没有过滤,导致了SQL注入漏洞。,SQL注入攻击分类,区分数字和字符串,要想构造有效的SQL注入语句,需要对SQL语言有基本的了解。执行SQL注入利用,首先要清楚数据库包含不同的数据类型,他们都具有不同的表示方式,可以将它们分为两类:,-,数字:不需要使用单引号来表示,-,字符串:需要单引号来表示,使用数字值的例子:,select*from products where,id=3,使用字符串值的例子,:,select*from p

5、roducts where name=peta,SQL注入攻击分类,内联和终止,内联注入是指向查询注入一些SQL代码后,原来的查询仍然会全部执行。,SQL注入攻击分类,内联和终止,终止式注入是指攻击者在注入SQL代码时,通过注释剩下的查询来成功终止了SQL语句。除终止了该语句外,还需要注释剩下的查询以使其不会被执行。,SQL注入攻击分类,常规注入和盲注入,常规注入是指攻击者通过构造一系列有目的、有规律的HTTP请求,从返回的HTTP响应中直接提取数据库数据的攻击。常规注入之所以称为常规是由于它的普遍性、适用性,它最主要的一个特点是请求返回的响应可以“直接”获取想要的数据。,SQL注入攻击分类,

6、常规注入和盲注入,与常规注入相比,盲注就是一种非常规注入,它不能从HTTP请求返回的响应中直接提取想要的数据,但是可以利用多个请求响应的细微差别间接推断出数据库数据。,SQL注入攻击分类,按攻击方法划分,基于时间,基于WEB应用响应时间上的差异来寻找利用SQL注入漏洞,-/sql.asp?id=1;if+(system_user=sa)+,waitfor,+delay+0:0:5-,-/sql.asp?id=1 union select if(substring(user(),1,4)=root,benchmark,(100000000,rand(),1);,-,/sql.asp?id=1 u

7、nion select,#MYSQL,if(substring(user(),1,4)=root,sleep,(5),1);,-,select,utl_http.request,(10.0.0.1)from dual;,-,select,HTTPURITYPE,(10.0.0.1).getclob()from dual;,-,select,decode,(substr(user,1,1),A,(select count(*)from all_objects,all_objects,all_objects,all_objects),0),SQL注入攻击分类,按攻击方法划分,基于错误,基于错误的用

8、法需要与特定数据库错误相结合使用,下面是一个MSSQL基于错误的攻击探测方法:,-/sql.asp?id=12/is_srvrolemember(sysadmin);,说明:is_srvrolemember是MSSQL用于探测当前数据库用户是否拥有固定数据库角色,如上面请求,如果用户有sysadmin数据库角色,函数返回1,没有返回0。类似的函数还有is_member、has_dbaccess。基于错误的方法还可以结合基于条件的攻击手法一起使用,如下请求:/sql.asp?id=12/(case when(system_user=sa)then 1 else 0 end);,SQL注入攻击分类

9、按攻击方法划分,基于内容,基于错误的方法可能会触发许多不需要的错误,基于内容的攻击手法是对基于错误的方法的改进,它避免了错误的产生,通过不同的响应来判断信息位。,-,/sql.asp?id=12%2B(case when(system_user=sa)then 1 else 0 end);,说明:与基于错误的唯一差别是用%2B替换了“/”字符。%2B是“+”的URL编码。,SQL注入攻击分类,特定数据库的攻击,PL/SQL对于Oracle就像T-SQL对于MSSQL一样,它们都是对标准数据查询语言(SQL)的扩展。PL/SQL不是一个独立的产品,它是一个整合到Oracle服务器和Oracle

10、工具中的技术,可以把PL/SQL看作Oracle服务器内的一个引擎,SQL语句执行者处理单个的SQL语句,PL/SQL引擎处理PL/SQL程序块。当PL/SQL程序块在PL/SQL引擎处理时,Oracle服务器中的SQL语句执行器处理PL/SQL程序块中的SQL语句。,PL/SQL注入是Oracle特有的一种SQL注入,它不同于一般SQL注入的地方是PL/SQL注入可以执行PL/SQL代码,而一般的SQL注入只能执行SQL语句。,SQL注入攻击分类,SQL注入渗透测试框架,SQL注入渗透测试框架,SQL注入渗透测试框架,收集应用程序可测试点,应用程序可测试点指的是Web应用程序页面中用户可控数

11、据的入口点。用户通过入口点输入的数据,如果没有经过验证过滤而被用于操作数据库,就有可能存在SQL注入漏洞。所以在收集可测试点的过程中,应尽量确保覆盖范围,不遗漏每一个可测试点。常见的可测试点有url查询字符串参数、post表单数据、cookie数据,post表单数据往往还包含一些隐藏字段。,SQL注入渗透测试框架,确定可测试点是否是可注入点,确定可测试点是否是可注入点,是SQL注入渗透测试最重要的一个环节。确定的依据主要有两种,一种是依据用户输入数据是否会导致应用程序出现SQL语法错误,另一种是依据用户输入数据执行的差异性。,-单引号测试,-and 1=1与and 1=,2,测试,SQL注入渗

12、透测试框架,数据库类型探测,发现了SQL注入漏洞相当于找到了切入点,对于攻击者没有任何意义,对于渗透测试人员没有令人信服的凭证,所以万里长征要想取得成功,我们还需一步步走。如果说发现SQL注入漏洞为我们指明了革命的方向,那么探测清楚数据库类型就是革命的路线方针,它可以让我们在整个渗透测试过程中少走弯路,为我们进一步的发起总攻提供强有力的支持。,-,oracle特有dual数据表,-,oracle错误信息,-,oracle版本信息,-,oracle特有拼串操作,-,oracle特有函数,SQL注入渗透测试框架,数据库基本信息探测,探测数据库类型也是探测基本信息的一步,但知道了数据类型与版本还远远

13、不够,还不足以为进一步渗透提供足够的信息,还有一些基本信息需要探测清楚,包括当前用户名、当前用户权限、当前数据库名、当前数据库表信息、当前数据库列信息。,-,爆破(access),-,全局变量version servername(MSSQL),-,特有函数db_name()(MSSQL),-,数据库系统元数据信息(mssql、mysql、oracle),SQL注入渗透测试框架,爆取数据库数据,利用SQL注入漏洞爆取数据库数据,是SQL注入攻击的最直接的价值体现。有了基本信息探测阶段探测的数据库表信息与数据库列信息,爆取数据库数据是水到渠成的事情。直接构造SQL语句“select 列名 from

14、 表名”爆取数据。,SQL注入渗透测试框架,提权,所有现代DBMS均为其管理员提供了对用户可执行操作的细微控制,可以通过为每个用户赋予指定的权限来管理并控制其对存储信息的访问。如我们攻击的后台DBMS可能包含多个数据库,但执行查询的用户可能只能访问其中的某一个,该数据库可能并未包含我们想要的信息。还有可能用户只能读取数据,而我们测试的目的是检查是否能够以未授权的方式修改数据。换言之:执行查询的用户只是一个普通的用户,其权限远低于DBA。这时就需要提权,不同数据库的提权方式也是不同的,大体可分为一下类别:,-,爆破(MSSQL爆破sa口令),-,具体DBMS漏洞,SQL注入渗透测试框架,读写文件

15、MySQL的LOAD DATA INFILE语句和LOAD_FILE函数读取文件,MySQL的SELECT.INTO DUMPFILE/OUTFILE语句用于写入文件,MSSQL的bulk insert语句可以读取源文件、配置文件以及证书文件,MSSQL的一系列系统存储过程sp_oamethod、sp_oacreate、xp_fileexist等。,ORACLE的utl_file包、JAVA存储过程,执行系统命令,MSSQL的xp_cmdshell扩展,ORACLE的JAVA存储过程,SQL注入渗透测试框架,SQL盲注入,一般推断技术:分两步,第一步推断某个要探测的数据的长度,N,;第二步推

16、断,N,个字节的值。第一步推断长度是非常重要的,如果没有推断出长度,就无法确定第二步要推断多少个字节的值。以推断用户名为例它的推断公式是:,-,and(select length(sys_context(userenv,current_user)from dual)=d,d,是整数,-,and (select substr(sys_context(userenv,current_user),i,1)from dual)=w,i,取,0.N,-1,w,取,A-Z,a-z,0-9,_,SQL盲注入,二分法推断技术:从推断过程看二分法推断技术同一般推断技术一样分两步,第一步推断要探测的数据的个数或长

17、度或者两者都有;第二步利用二分法发送,8,个请求推断要探测的数据的每一个字节值。以推断数据表表名为例它的推断公式是:,-,and(select ascii(substr(table_name,i,1)from(select rownum,table_name from user_tables where rownumN,,,i,取,0.n-1,,,n,是探测的数据表长度,,j,取,2.m+1,,,m,是探测的数据表的个数,,N,取,0.255,SQL盲注入,逐位推断技术:在逐位推断技术中,长度个数的推断也是必不可少的,以推断,TB_USRS,数据表数据列的列名为例它的推断公式是:,-,and

18、bitand(select ascii(substr(column_name,i,1)from(select rownum,column_name from user_tab_columns where table_name=TB_USERS and rownumj order by 1 desc)where rownum=1),2,的,N,次方,)=2,的,N,次方,,i,取,0.n-1,,,n,是探测的,TB_USERS,第,j-1,个数据列的长度,,j,取,2.m+1,,,m,是探测的,TB_USERS,数据列的个数,,N,取,0.7,SQL盲注入,SQL绕过攻击,利用注入漏洞绕过认证不

19、同于常规注入和盲注,它的目的只是利用内联和终止式注入绕过应用程序认证,这种注入漏洞主要存在于应用程序登录页面。,-字符串式内联注入绕过,-字符串式终止注入绕过,-数字式内联注入绕过,-数字式终止注入绕过,SQL绕过攻击,字符串式内联注入绕过,某公司,Web,站点要求用户输入正确的用户名和密码进行表单身份认证,用户输入用户名和密码后,应用向数据库发送一个查询以对用户进行认证,查询的格式为:,-,select*from administrators where username=USER ENTRY and password=USER ENTRY,通过增加一个新的,or,条件(,or 1=1 or

20、 1=1,)绕过认证,语句为:,-,select*from administrators where username=,or 1=1 or 1=,1 and password=,SQL绕过攻击,字符串式终止式注入绕过,某公司,Web,站点要求用户输入正确的用户名和密码进行表单身份认证,用户输入用户名和密码后,应用向数据库发送一个查询以对用户进行认证,查询的格式为:,-,select*from administrators where username=USER ENTRY and password=USER ENTRY,通过,username,字段中注入(,or 1=1;-,),口令保持为空

21、语句如下:,-,select*from administrators where username=,or 1=1;-,and password=,SQL绕过攻击,数字式内联注入绕过,假设用户可以登录到,Victim,公司访问自己的资料,格式如下,:,-,1=1,)语句,可以返回所有用户的消息而不单是自己的消息,如下:,-,1=1,此时服务器执行的,SQL,语句为:,-,select*from messages where uid=1,or 1=1,order by name,上述查询会返回,messages,表所有的行,而不只是那些发送给自己的消息行,这样我们就绕过了认证访问了发送给其他用

22、户的消息。,SQL绕过攻击,数字式终止注入绕过,还是以数字式内联注入的例子说明,,通过注入一个永真的条件(,or 1=,1-)语句,可以返回所有用户的消息而不单是自己的消息,如下:,-1=1-,此时服务器执行的,SQL,语句为:,-select*from messages where uid=1,or1=1-,order by name,上述查询会返回,messages,表所有的行,而不只是那些发送给自己的消息行,这样我们就绕过了认证访问了发送给其他用户的消息。,SQL绕过攻击,总结,介绍了SQL注入的背景,介绍了SQL注入的原理,介绍了SQL注入渗透测试框架,介绍了SQL注入分类,介绍了SQL盲注入,介绍了SQL绕过攻击,总结,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服