《信息安全技术基础》课件 6.2SQL注入技术_第1页
《信息安全技术基础》课件 6.2SQL注入技术_第2页
《信息安全技术基础》课件 6.2SQL注入技术_第3页
《信息安全技术基础》课件 6.2SQL注入技术_第4页
《信息安全技术基础》课件 6.2SQL注入技术_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六单元Web安全攻防技术主要内容任务2SQL注入技术任务2SQL注入技术奇威公司领导对网络安全工作越来越重视,公司财务部领导非常担心公司财务系统被入侵,公司财务数据被非法窃取,因此公司财务部领导找到小卫,想要小卫帮忙对财务系统进行安全检测,重点检测一下是否存在SQL注入漏洞,如果有,请提出相应的整改修复方案。【任务情境】任务2SQL注入技术1、SQL注入的原理注入往往是应用程序缺少对输入进行安全型检查所引起的,攻击者把一些包含指令的数据发送给解释器,解释器会把收到的数据转换成指令执行。常见的注入包括sql注入。根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。【知识准备】任务2SQL注入技术2、 SQL注入的技术和方法当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。相关的SQL注入可以通过测试工具pangolin进行。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。常见的SQL注入技术包括以下几类:【知识准备】任务2SQL注入技术 强制产生错误对数据库类型、版本等信息进行识别是此类型攻击的动机所在。它的目的是收集数据库的类型、结构等信息为其他类型的攻击做准备,可谓是攻击的一个预备步骤。利用应用程序服务器返回的默认错误信息而取得漏洞信息。 使用特殊的字符不同的SQL数据库有许多不同是特殊字符和变量,通过某些配置不安全或过滤不细致的应用系统能够取得某些有用的信息,从而对进一步攻击提供方向。 使用条件语句此方式具体可分为基于内容、基于时间、基于错误三种形式。一般在经过常规访问后加上条件语句,根据信息反馈来判定被攻击的目标。【知识准备】任务2SQL注入技术 利用存储过程 通过某些标准存储过程,数据库厂商对数据库的功能进行扩展的同时,系统也可与之进行交互。部分存储过程可以让用户自行定义。通过其他类型的攻击收集到数据库的类型、结构等信息后,便能够建构执行存储过程的命令。这种攻击类型往往能达到远程命令执行、特权扩张、拒绝服务的目的。 避开输入过滤技术虽然对于通常的编码都可利用某些过滤技术进行SQL注入防范,但是鉴于此种情况下也有许多方法避开过滤,一般可达到此目的的技术手段包括SQL注释和动态查询的使用,利用截断,URL编码与空字节的使用,大小写变种的使用以及嵌套剥离后的表达式等等。借助于此某些手段,输入构思后的查询可以避开输入过滤,从而攻击者能获得想要的查询结果。【知识准备】任务2SQL注入技术本次任务通过登录一个具有sql语句逻辑错误的漏洞网站后台,感受sql注入的过程及危害。步骤1:如下图登录具有sql语句逻辑错误的网站的后台登录页面如下所示。【任务实施】图6-21网站登录界面任务2SQL注入技术步骤2:尝试使用正确的用户名:admin和密码:123456登录,如下图所示。【任务实施】图6-22尝试登录6-23成功后进入后台管理界面任务2SQL注入技术步骤3:尝试使用错误的用户名和密码登录,由于账户或密码不对,系统会提示:您的用户名和密码输入有误,请重新输入,如下图【任务实施】图6-24用户名及密码错误任务2SQL注入技术步骤4:尝试使用万能户名的方式进行SQL注入,输入用户名:"or1=1#,密码任意输入,发现成功登录后台,实现SQL注入,如下图6-25及图6-26所示。【任务实施】图6-26成功渗透进入后台图6-25注入万能用户名任务2SQL注入技术本任务利用SQL语句中逻辑错误实现SQL注入,具体原理如下:造成注入漏洞的语句为:

$sql='select*fromloginwhereusername="'.$username.'"andpassword="'.$password.'";';比如在用户名栏输入:"or1=1#,密码随意,此时语句会变为:

select*fromloginwhereusername=””or1=1#”andpassword=……因为”#“在mysql中是注释符,所以该语句等价于:

select*fromuserswhereusername=''or1=1因为1=1恒成立,所以该语句恒为真,即可跳转登录成功以后的页面。【

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论