- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
手工COOKIES注入攻击 廖雨霞 20070810310 计算机科学与技术三班 COOKIES注入原理 在ASP中,request对象获取客户端提交数据常用的是get和post两种方式,同时request对象可以不通过集合来获得数据,即直接使用request(name),有时为了简化代码,会写成ID=Request(ID), 当我们省略具体的集合名称时,asp是按QueryString(get),Form(post),Cookie,Severvariable集合的顺序来搜索的。 对于防注入系统,他会检测GET和POST中的数据,如果有特殊字符(这里当然是指注入字符),就禁止数据的提交,但他没有检测Cookies的数据。Cookie是保存在客户端的一个文本文件,可以进行修改,这样一来,就可以利用Request.cookie方式来提交变量的值,从而利用系统的漏洞进行注入攻击。 目标网站扫描 目标站A:/Products_show.asp?id=284 对目标站A用APPSCAN进行扫描,得到扫 描结果如下: 目标网站演示攻击 目标站A: /Products_show.asp?id=284 首先要检测下能否按照SQL注入的方式注入,在网址后面加或者 and 1=1 可见目标网站使用了防注入系统,但是目前是使用get方式提交的参数,那现在将“id=284”这个参数使用cookie提交,看看程序对数据接收是否直接使用 request(“xx”)的方式。 测试程序对数据是否直接使用COOKIE方式提交 输入/Products_show.asp? 页面返回如下图: 参数有误!因为我们没有给它提交一个数据。平时我们用get提交,即地址应为asp?id=XX这样的。 现在我们用cookies给他提交一个数据,代码为javascript:alert(document.cookie=ID=+escape(284)); 现在在另外一个窗口中我们打开以下地址: /Products_show.asp?即是将“id=284”去掉后的,然后看是否能正常访问。 可见访问之后的页面与访问/Products_show.asp?id=284的时候是一样的,这样就说明程序在使用request对象获取数据的时候并未指明具体使用什么方法来获取,而是直接使用request(xx)的方式。 测试能否使用COOKIE方式注入,即测试能否提交特殊字符,程序是否对数据进行过滤 用逻辑运算符来进行测试: javascript:alert(document.cookie=id=+escape(284 and 1=1)); javascript:alert(document.cookie=id=+escape(284 and 1=2)); “参数有误!”页面不正常,不能打开,这 表示可以确定该页面能使用cookie注入。 查询管理员的表名和字段数 首先使用order by 语句判断出当前执行数据库查询的表的字段数,在带参数id=284的页面提交:javascript:alert(document.cookie=id=+escape(284 order by 1)); 然会刷新不带参数的页面,显示正常,表示可以使用order by语句,如果错误的话可能是不能使用order by来猜解字段数了。 这表示能可以使用order by 来判断当前执 行数据库查询的表的字段数。然后提交: javascript:alert(document.cookie=id=“ +escape(“284 order by 10”));如果还返回 正常就说明字段数在10以上,一次类推直 到猜解出正确的字段数,在这里我提交到 了21的时候去刷新页面出现错误,然后提 交20的时候去刷新页面就正常了,就说明 字段数是20。 查询管理员的表名: 使用更换from处可以猜解数据库表名 提交javascript:alert(document.cookie=id=+escape(284 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 from manage)); 再提交: javascript:alert(document.cookie=id=+escape(284 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 from admin)); 这表示网站数据库存在admin这个表,并且可以在6,17处可以键入数据来猜解用户名和密码 使用union联合查询爆出管理员的账号和密码 在带
文档评论(0)