- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012 年第12 期
基于时间的SQL 注入研究
文/ wjphero
SQL 注入攻击是业界一种非常流行的攻击方式,是由rfp 在1998 年《Phrack》杂志第54
期上的“NT Web Technology Vulnerabilities”文章中首次提出的。时过境迁,相关SQL 注入
的技术和工具都进行了不断的发展和演化。目前SQL 注入漏洞已经是信息安全的一大领域,
无论是小到个人网站,还是大到电子商务网站,都或多或少的存在 SQL 注入漏洞。为什么
SQL 注入漏洞会屡禁不止,原因就在于要想防御SQL 注入漏洞,需要对SQL 语句、业务流程
行为、各种主流数据库相关机制都有较为深入的认识和理解,才能真正做好 SQL 注入的攻
击和防范。
SQL 注入和盲注
对于 SQL 注入的定义和一般的判断方法,无非就是著名的三段式。普通 SQL 注入是通
过构造 SQL 语句,将敏感信息直接暴露在网页上,有两种方式,一种是通过报错方式,一
种是通过union select 联合查询方式。普通的SQL 注入并不是完美的,一旦开发人员将错误
页面进行处理,将union select 关键字进行过滤,注入将不再有效。其实这种修复方式存在
较大的问题。如果是在不采取其他措施的情况下,仅仅更换成统一的错误页面是不能避免
SQL 注入的,这将会产生一种更高级的SQL 注入方式:盲注。盲注是通过构造SQL 判断语句,
通过返回页面的不同将信息判断出来。返回页面有三种:有结果页面、0 结果页面和错误过
滤页面。只要有其中的两个页面,无论哪两个页面都可以,就可以判断存在注入漏洞。当然,
处
这中间还有一个前提,就是这些不同的页面是由输入到 URL 中的SQL 语句执行的不同造成
线
的。但是普通的盲注也不是绝对有效的,一旦没有两个以上的差异页面,或者不能通过页面
出
的不同来来判断URL 中SQL 语句的有效性,此时就要使用基于时间的SQL 盲注。
防 明
基于时间的SQL 盲注的特点和使用
客
假设有这么一个文件,无论怎么注入,页面内容都一样,但此文件确实存在注入点。最
注
关键的是通过普通盲注不能得到差异页面,没有差异也就没法进行盲注。为什么没有差异,
黑
有这么几种情况: 请
第一种情况:无论输入什么都只显示无信息页面,例如登陆页面。这种情况下可能只有
登录失败页面,错误页面被屏蔽了,并且在没有密码的情况下,登录成功的页面一般情况下
载
也不知道。在这种情况下,有可能基于时间的SQL 注入会有效。
第二种情况:无论输入什么都只显示正常信息页面。例如,采集登录用户信息的模块页
面。采集用户的 IP、浏览器类型、refer 字段、session 字段,无论用户输入什么,都显示正
转
常页面。
第三种情况:差异页面不是由输入 URL 中的SQL 语句来决定的。这种情况下,也只能
使用基于时间的盲注。
总之,情况有很多种,只要无法通过差异页面来进行一般的SQL 盲注,基于时间的SQL
盲注就都有存在的可能。
Oracle 数据库盲注
Oracle 中基于时间的盲注主要是使用了 DBMS_PIPE.RECEIVE_MESSAGE() 函数和 CASE
WHEN…THEN …语句。下面是一个示例:
2012 年第12 期
5593=(CASE WHEN (ASCII(SUBSTRC((SEL
文档评论(0)