注入篇——Cookie注入

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Fly_hps/article/details/79452019

Cookie注入原理

(1)数据读取流程:对于WEB服务器而言,读取数据的流程是先取GET中的数据,如果GET中没有数据信息,那么再取POST中的数据,如果POST中也没有那么就会去取COOKIE中的数据

(2)防注入系统的常例:系统一般只会对GET、POST中的数据进行检测,如果有特殊的字符就禁止数据的提交,但是很少检测COOKIE中的数据信息。

(3)ASP中的request对象:Request对象被用于从用户那里获取信息。Request.[某一结果集的名称](参数名称),比如获取表单中提交的数据:request.form("参数名称"),同时对于ASP而言,这里的结果集名称也可以省略,直接使用“request(参数名称)”,如果使用这样的方式,ASP规定按照QueryString、Form、Cookies、ServerVariables的顺序来获取数据。这样一来,如果我们使用request("参数名称")方式获取客户端提交的数据,并且没有对使用request.cookies("参数名称")方式提交的数据进行过滤时,Cookie注入就产生了。

Cookie注入步骤

(1)使用Baidu、Google等浏览器搜寻目标站点:

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

(3)清空浏览器地址栏,输入“javascript:alert(document.cookie="id="+escape("xxxx"));”,按Enter键后弹出一个对话框,内容是“id=xxxx”,然后用原来的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)之后使用常规注入语句进行注入即可。

说明部分:

   document.cookie="id="+escape("xxxx")的作用是把XXXX保存到COOKIE的ID中

Cookie注入中转

使用注入中转生成器来实现注入:


之后点击“生成ASP”就可以在程序的根目录下面生成一个用来中转的ASP文件!之后我们需要把该ASP文件上传到一个支持ASP的网络空间中去,之后进行访问!

此时,虽然你输入的地址不是之前存在COOKIE注入的网址,但是确实显示相同的界面。

但是,没有参数的页面是无法进行注入的,所以此时要将上面所显示的POST提交值添加到单前的URL后面(中间不可少“?”),之后就可以像普通的注入网站那样进行注入了,可以使用啊D、明小子等来注入

使用Sqlmap进行Cookie注入

在SQLmap中有一个参数“--Level”,当“leavel>=2”时就会检测COOKIE后面的参数,当“level>3”时将会检测User-Agent和Referer,这为COOKIE的注入提供了便利:

例如:

sqlmap -u  http://xxx.xx.xx.xx:xx/test.php  --cookie id=1 --dbs --leavel 2
    
    
之后可以陆续的查询表、字段、字段值等内容。

Cookie注入防御

COOKIE注入的防御可以通过以下方法来解决:

(1)指明客户端数据提交方式,或者使用Request.QueryString("id")方式来获取通过GET方式提交的数据。

(2)修改防注入程序,增加对Request.Cookies("id")数据提交方式的过滤。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值