关于Cookie注入学习心得

本文介绍了Cookie的基础知识,包括其来源和作用,详细阐述了Cookie注入攻击的产生、一般步骤,以及如何利用JavaScript进行测试。同时,讨论了防御Cookie注入的策略,如指定数据提交方式和增强防注入程序的过滤功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,Cookie的来源和作用
       
         Cookie最先是由Netscape(网景)公司提出的,Netscape官方文档中对Cookie的定义是这样的:Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。就是某些网站为了辨别网站用户身份而进行对session追踪结果的记录,浏览器不同Cookie存储的位置也不尽相同。而Cookie的作用则很大,例如某些浏览器需要记录用户名及密码或者自动登录某个网站,还有一个典型的例子就是电商网站的购物车记录。


二,Cookie注入攻击

        1,Cookie注入攻击的来由:
          
          由于SQL注入攻击的愈演愈烈,越来越多的网站管理员加入了防注入程序来抵挡SQL注入攻击,这样我们用常规的手段去进行SQL注入攻击时,就不太可能会成功。但是由于防注入程序是基于黑名单的,根据特征字符串过滤某些字符。然而某些防注入程序就仅仅只是验证了GET POST方法提交的数据,对于Cookie的提交却是没有过滤,于是便产生了Cookie注入。
          
         ASP脚本语言中的REQUEST对象通常被用来获取客户端提交的数据。REQUEST对象的使用方法为Request[集合名称](“参数名称”),例如从Cookie中获取信息时就是Request.cookie(”参数名称“)。而且ASP默认可以没有参数名称,而默认的结果就是ASP获取数据的顺序就是QueryString,Form,Cookie,ServerVariables。所以当我们不填写集合名称时,并没有对我们提交的Cookie数据进行过滤,便产生了Cookie注入。
       
       2,一般步骤:
          
           在URL里寻找有没有诸如?id=xx的样子,找到后删去id=xx看看页面是否如前,如果不一样则说明参数传递是有直接作用的,这时我们在浏览器地址栏中输入javascript:alert(document.cookie="id="+escape("xx"));按回车会出现一个对话框,显示id=xx,然后用原来的URL刷新页面,如果显示正常,说明应用是用Request("id")这种方式获取数据的。重复上面的步骤,将常规SQL注入中的判断语句分别带入上面的URL:“javascript:alert(document.cookie="id="+escape("xx and 1=1"));   javascript:alert(document.cookie="id="+escape("xx and 1=2")); 和常规SQL注入一样,如果分别返回正常和不正常页面,则说明该应用存在注入漏洞,并可以进行cookie注入。然后使用常规注入语句进行注入。


三,Cookie注入攻击的防御措施:
       
       由上述的产生原因可知,解决方法大致有已下两种:(1)在获取客户端提交的数据时指明数据提交方式,可以采用Request.QueryString("id")方式来获取通过GET方式提交的数据。(2)修改防注入程序,增加对Request.Cookies("id")数据提交方式的过滤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值