COOKIE注入

一、简介


Cookie的定义是这样的:Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。通常被用来辨别用户身份、进行session跟踪,最典型的应用就是保存用户的账号和密码用来自动登录网站和电子商务网站中的“购物车”。

Cookie注入简单来说就是利用Cookie而发起的注入攻击。从本质上来讲,Cookie注入与传统的SQL注入并无不同,两者都是针对数据库的注入,只是表现形式上略有不同罢了。

要想深入了解Cookie注入的成因,必须要了解ASP脚本中的request对象。它被用于从用户那里获取信息。Request对象的使用方法一般是这样的:request.[集合名称](参数名称),比如获取从表单中提交的数据时可以这样写:request.form("参数名称"),但ASP中规定也可以省略集合名称,直接用这样的方式获取数据:request("参数名称"),当使用这样的方式获取数据时,ASP规定是按QueryString、Form、Cookies、ServerVariables的顺序来获取数据的。这样,当我们使用request("参数名称")方式获取客户端提交的数据,并且没有对使用request.cookies("参数名称")方式提交的数据进行过滤时,Cookie注入就产生了。

二、Cookie注入典型步骤

1.寻找形如“.asp?id=xx”类的带参数的URL。

2.去掉“id=xx”查看页面显示是否正常,如果不正常,说明参数在数据传递中是直接起作用的。

3.清空浏览器地址栏,输入“javascript:alert(document.cookie="id="+escape("xx"));”,按Enter键后弹出一个对话框,内容是“id=xx”,然后用原来的URL刷新页面,如果显示正常,说明应用使用Request("id")这种方式获取数据的。

4.重复上面的步骤,将常规SQL注入中的判断语句带入上面的URL:“javascript:alert(document.cookie="id="+escape("xx and 1=1"));” “javascript:alert(document.cookie="id="+escape("xx and 1=2"));”。和常规SQL注入一样,如果分别返回正常和不正常页面,则说明该应用存在注入漏洞,并可以进行cookie注入。

5.使用常规注入语句进行注入即可。

三、实战

打码打码。

问题URL:http://XXXXXX.com/product_list.asp?smallclass=148

先直接访问URL,观察页面。

去掉“smallclass=148”查看页面显示是否正常,如果不正常,说明参数在数据传递中是直接起作用的

然后再清除地址,输入:

javascript:alert(document.cookie="smallclass="+escape("148"));

会出现一个弹窗。

然后在去掉“?smallclass=xx” 浏览器中输入:http://XXXXXX.com/product_list.asp

页面刷新后网站显示正常

通过分析上面的代码,我们确定了Cookie注入产生的原因。网站程序是通过request("id")方式获取客户端提交的数据,并且在防注入程序中没有对通过request.cookies方式提交的数据进行过滤。

接下来:

1、输入:javascript:alert(document.cookie="smallclass="+escape("148 and 1=1"));

弹窗,然后输入http://XXXXXX.com/product_list.asp页面正常。

2、输入javascript:alert(document.cookie="smallclass="+escape("148 and 1=2"));

弹窗,再输入http://XXXXXX.com/product_list.asp页面不正常

现在我们已经可以确定该网站存在注入漏洞,并且可以通过Cookie进行注入。

然后换语句猜解字段数:

javascript:alert(document.cookie="smallclass="+escape("148 order by 12"));

按照上面的规律,剩下的和常规SQL注入一样,如果分别返回正常和不正常页面,则说明该应用存在注入漏洞,并可以进行cookie注入。

四、使用工具SQLmap

知道某处可能存在cookie注入后可以用sqlmap帮助我们进行验证。

 

 

 

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值