S Q L 注入原理

上传人:hy****d 文档编号:242879829 上传时间:2024-09-10 格式:PPT 页数:12 大小:39KB
返回 下载 相关 举报
S Q L 注入原理_第1页
第1页 / 共12页
S Q L 注入原理_第2页
第2页 / 共12页
S Q L 注入原理_第3页
第3页 / 共12页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,S Q L,注入原理,SQL,注入攻击是黑客对数据库进行攻击的常用手段之一。这是由于相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。 用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的,SQL Injection,,即,SQL,注入。,SQL,注入是从正常的,WWW,端口访问,而且表面看起来跟一般的,Web,页面访问没什么区别,所以目前市面的防火墙都不会对,SQL,注入发出警报,如果管理员没查看,IIS,日志的习惯,可能被入侵很长时间都不会发觉。但是,,SQL,注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的,SQL,语句,从而成功获取想要的数据。,SQL,注入测试就是通过利用目标网站的某个页面缺少对用户传递参数控制或者控制的不够好的情况下出现的漏洞,从而达到获取、修改、删除数据,甚至控制数据库服务器、,Web,服务器的目的的测试方法。,1,SQL,注入的思路是:,发现,SQL,注入位置;,判断后台数据库类型;,得到管理员权限;,2,SQL,注入攻击的步骤,一、,SQL,注入漏洞的判断,一般来说,,SQL,注入一般存在于形如:等带有参数的,ASP,动态网页中,有时一个动态网页中可能只有一个参数,有时可能有,N,个参数,有时是整型参数,有时是字符串型参数,不能一概而论。,总之只要是带有参数的动态网页且此网页访问了数据库,,,那么就有可能存在,SQL,注入。,如果,ASP,程序员没有安全意识,不进行必要的字符过滤,存在,SQL,注入的可能性就非常大。,3,二 、,SQL,语句注入,1.,判断有无注入点,;,and 1=1,and 1=2,如果 ;、,and 1=1,返回正常页面,,and 1=2,返回错误页面 则可以进行注入。,4,三、数据库类型判断:,ACCESS,与,SQL,SERVER,是最常用的数据库服务器,尽管它们都支持,T,SQL,标准,但还有不同之处,而且不同的数据库有不同的攻击方法,必须要区别对待。,ACCESS,的系统表是,msysobjects,且在,WEB,环境下没有访问权限,而,SQL-SERVER,的系统表是,sysobjects,在,WEB,环境下有访问权限。对于以下两条语句:,and (select count(*) from sysobjects)0,and (select count(*) from msysobjects)0,如果打开页面是与原页面是大致相同的是,SQL-SERVER,类型,否则是,Access,类型的数据库。利用这些系统值可以得到大量有用信,息。,5,sql,入侵方法有两种:,用,sql,注入工具。例如啊,D,注入工具,手工注入,。,6,手工注入,猜数据库,and (select Count(*) from ,数据库名,)0,猜字段,and (select Count(,字段名,) from,数据库名,)0.,在猜不到字段名时,不妨看看网站上的登录表单,一般为了方便起见,字段名都与表单的输入框取相同的名字。,7,猜解表里面的字段名称了,and (select count(*) from admin where len(,*,)0),这个是核心语句也是大众话的语句,.,我们要做的就是在,len( ),括号里面加上我们想到的字段名称,.,8,猜用户名和密码的具体长度,and (select count(*) from admin where len(name)0),用户字段名称,and (select count(*) from admin where len(password)0),密码字段名称,9,猜解字符,and (select count(*) from admin where left(admin,1)=,a,) -,猜解用户,“,1”,代表用户名的第一个字符,a,and (select count(*) from admin where left(admin,2)=,ad,)-,用户名前二个字符,以此可以猜出 用户名和密码。,找出登录口登录,10,防御和检查,SQL,注入的手段,没有正确过滤转义字符,如,and “t”=“t”,;,1or1=1,使用参数化的过滤性语句,要防御,SQL,注入,用户的输入就绝对不能直接被嵌入到,SQL,语句中。恰恰相反,用户的输入必须进行过滤,或者使用参数化的语句。参数化的语句使用参数而不是将用户输入嵌入到语句中。在多数情况中,,SQL,语句就得以修正。然后,用户输入就被限于一个参数。使用参数化的语句意味着嵌入用户输入的,SQL,语句在运行时将被拒绝,11,使用专业的漏洞扫描工具,如,Acunetix,的,Web,漏洞扫描程序等。一个完善的漏洞扫描程序不同于网络扫描程序,它专门查找网站上的,SQL,注入式漏洞。最新的漏洞扫描程序可以查找最新发现的漏洞。,防范,SQL,注入,还要避免出现一些详细的错误消息,因为黑客们可以利用这些消息。要使用一种标准的输入确认机制来验证所有的输入数据的长度、类型、语句、企业规则等。,12,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!