SQL漏洞 _原创文档.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

1相关背景介绍:随着互联网web和信息技术的发展,在web

后端作为存储和管理的的数据库也得到了广泛的应用,与web结合

较为紧密的数据库包括Mysql,Sqlserver,Oracle,Sqllite,Db2,

Access等等。数据存储和管理作为应用的一个基本需求,在绝大多

数的应用里都得到了使用,这种大面积的使用也意味着在数据库操作

方面如果处理不当出现问题的可能性会很大,另外一方面由于数据库

承载了应用的数据信息,如果数据库出现问题一方面可能导致敏感数

据的泄露和篡改(如信用卡账户,用户密码,管理账户和密码,销售

记录等等),直接导致损失和应用被攻陷,另外一方面,即使数据库

中不承载较为敏感的信息,由于数据库的特殊性,数据库被攻击的话

也可以直接导致应用程序崩溃及其他严重的后果。

2成因应用为了和数据库进行沟通完成必要的管理和存储工作,

必须和数据库保留一种接口。目前的数据库一般都是提供api以支持

管理,应用使用底层开发语言如Php,Java,asp,Python与这些

api进行通讯。对于数据库的操作,目前普遍使用一种SQL语言

(StructuredQueryLanguage语言,SQL语言的功能包括查询、操

纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是

一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么

做),SQL作为字符串通过API传入给数据库,数据库将查询的结

果返回,数据库自身是无法分辨传入的SQL是合法的还是不合法的,

它完全信任传入的数据,如果传入的SQL语句被恶意用户控制或者

篡改,将导致数据库以当前调用者的身份执行预期之外的命令并且返

回结果,导致安全问题。那么恶意用户如何才能控制传入的SQL语

句呢?我们知道,既然传入的SQL是以字符串的方式传入的,这个

字符串由应用生成,那么如果应用生成这个字符串的方式不对将可能

导致问题,譬如考虑如下的功能:

$sql=select*frommemberswhereuserid=.$_GET[useri

d];

$sb-query($sql);

这段代码的逻辑是根据用户请求的Userid进入数据库查询出不同的

用户并且返回给用户,可以看到最终传入的字符串有一部分是根据用

户的输入来控制的,一旦用户提交

poc.php?userid=1or1=1

最终进入程序之后传入数据库的逻辑将是

$sb-query(select*frommemberswhereuserid=1or1=

1);

用户完全可以根据传入的内容来控制整个SQL的逻辑,实现间接

控制和管理数据库的目的,这种命令(SQL语句)和数据(用户提

交的查询)不分开的实现方式导致了安全漏洞的产生。由于不同的

开发语言可能对api进行了不同的封装,并且各种语言内部对数据的

校验会有不同的要求,譬如java和python属于变量强类型并且各种

开发框架的流行导致出现SQL注射的几率较小,php属于弱类型不

会对数据进行强制的验证加上过程化的程序编写思路导致出现注射

的几率会较大。

3攻击方式及危害通过典型的SQL注射漏洞,黑客是可以根据

所能控制的内容在SQL语句的上下文导致不同的结果的,这种不同

主要体现在不同的数据库特性上和细节上。同时,后端的数据库的不

同导致黑客能利用SQL语句进行的操作也并不相同,因为很多的数

据库在标准的SQL之外也会实现一些自身比较特别的功能和扩展,

常见的有Sqlserver的多语句查询,Mysql的高权限可以读写系统文

件,Oracle经常出现的一些系统包提权漏洞。即使一些SQL注射

本身无法对数据本身进行一些高级别的危害,譬如一些数据库里可能

没有存储私密信息,利用SQL查询的结果一样可能对应用造成巨大

的灾难,因为应用可能将从数据库里提取的信息做一些其他的比较高

危险的动作,譬如进行文件读写,这种本身无价值的数据和查询一旦

被应用本身赋予较高的意义的话,可能一样导致很高的危害。评估

一个SQL注射的危害需要取决于注射点发生的SQL语句的上下文,

SQL语句在应用的上下文,应用在数据库的上下文,综合考虑这些

因素来评估一个SQL注射的影响,在无上述利用结果的情况下,通

过web应用向数据库传递一些资源要求极高的查询将导致数据库的

拒绝服务,这将是黑客可能能进行的最后的利用。

4如何定位注入网站

文档评论(0)

. + 关注
官方认证
内容提供者

专注于职业教育考试,学历提升。

版权声明书
用户编号:8032132030000054
认证主体社旗县清显文具店
IP属地河南
统一社会信用代码/组织机构代码
92411327MA45REK87Q

1亿VIP精品文档

相关文档