cookie注入
cookie注入是实现SQL注入的其中一种方式。
原理
在ASP中,request对象获取客户端提交数据常用的是get和post两种方式,同时request对象可以不通过集合来获得数据,即直接使用"request("name")"。但它效率低下,容易出错,当我们省略具体的集合名称时,asp是按QueryString(get),Form(post),Cookie,Severvariable,集合的顺序来搜寻的。cookie是保存在客户端的一个文本档案,可以进行修改,这样一来,就可以利用Request.cookie方式来提交变数的值,从而进行注入攻击。
方式
首先我们需要找到一个注入点,目前我们是使用get方式提交的参数,要更改成cookie方式提交,我们首先要访问正常的存在注入点的页面,等页面完全打开之后,我们将IE地址栏清空,然后写上:javascript:alert(document.cookie="id="+escape("x")); 这里的“id=”便是“注入点中id=x”中的“id=”,“escape("x")”中的“x”是“id=x”中的“x”了,这两处要根据实际情况来定义。写完之后按下回车网页中会弹出一个对话框。
现在更改好了cookie后我们就要试下能不能正常访问了,现在在另外一个视窗中重新打开那个注入点既是将“id=x”去掉后的,然后看是否能正常访问。
如果去掉之后能够继续访问 那幺说明可以进行cookie注入,这样就说明程式在使用request对象获取数据的时候并未指明具体使用什幺方法来获取,而是直接使用request("xx")的方式。现在cookie形成的一个重要因素已经明确了,接下来我们测试下能否提交特殊字元,看程式是否对数据进行过滤。比如着名的单引号测试法,当然也就可以在语句上添加上手工注入的语句,达到绕过拦截的目的。