Cookie 注入是怎样产生的


Posted in Javascript onApril 08, 2009

我们来研究一下怎样情况下才会有Cookies注入!如果你学过ASP你应该会知道

Request.QueryString (GET)


Request.Form (POST)

呵,没错,这就是我们用于读取用户发给WEB服务器的指定键中的值!我们有时为了简化代码,会写成
ID=Request("ID")

这样写法是简单了,但问题就来了~~~我们先看WEB服务是怎样读取数据的,他是先取GET中的数据,没有再取POST中的数据,还会去取Cookies中的数据(晕,书上没有这么说,这是和小高交流时才知道~~看来书说的不全~~)

我们再看看防注入系统,他会检测GET和POST中的数据,如果有特殊字符(这里当然是注入字符了)!就禁止数据的提交! 但他没有检测Cookies的数据!问题就来了~~~那我们怎样测试是否有Cookies注入问题~请先看下面的的连接(示例用,所以连接不是真的)
http://www.xxx.com/1.asp?id=123

如果我们只输http://www.xxx.com/1.asp时,就不能看到正常的数据,因为没有参数!我们想知道有没有Cookies问题(也就是有没有Request("XXX") 格式问题),先用IE输入http://www.xxx.com/1.asp

加载网页,显示不正常(没有输参数的原因)之后在IE输入框再输入
javascript:alert(document.cookie="id="+escape("123"));
按回车,你会看到弹出一个对话框 内容是: id=123 之后,你刷新一个网页,如果正常显示,表示是用
Request("ID")
这样的格式收集数据~~~~,这种格式就可以试Cookies注入了在输入框中输入
javascript:alert(document.cookie="id="+escape("123 and 3=3"));
刷新页面,如果显示正常,可以再试下一步(如果不正常,就有可能也有过滤了)
javascript:alert(document.cookie="id="+escape("123 and 3=4"));
刷新一下页面,如果不正常显示,这就表示有注入了~~~如果程序员是用
Request.QueryString

Request.Form
收集数据的话,是没有Cookies注入问题的,因为服务程序是直截从GET或POST中读取数据的,Cookies是否有数据,WEB服务器是不理的,所以是不能利用Cookies注入的!~

Javascript 相关文章推荐
javascript编码的几个方法详细介绍
Jan 06 Javascript
Javascript中valueOf与toString区别浅析
Mar 19 Javascript
javascript格式化指定日期对象的方法
Apr 21 Javascript
JavaScript中ES6 Babel正确安装过程
Jul 18 Javascript
Highcharts学习之坐标轴
Aug 02 Javascript
微信小程序 基础知识css样式media标签
Feb 15 Javascript
jquery实现手机端单店铺购物车结算删除功能
Feb 22 Javascript
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
Vue创建头部组件示例代码详解
Oct 23 Javascript
GOJS+VUE实现流程图效果
Dec 01 Javascript
微信小程序开发之转发分享功能
Oct 22 Javascript
three.js利用射线Raycaster进行碰撞检测
Mar 12 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
Apr 07 #Javascript
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
Apr 07 #Javascript
javascript 日历提醒系统( 兼容所有浏览器 )
Apr 07 #Javascript
javascript mouseover、mouseout停止事件冒泡的解决方案
Apr 07 #Javascript
javascript 兼容鼠标滚轮事件
Apr 07 #Javascript
javascript 有趣而诡异的数组
Apr 06 #Javascript
在JavaScript中,为什么要尽可能使用局部变量?
Apr 06 #Javascript
You might like
文章推荐系统(三)
2006/10/09 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
jQuery 创建Dom元素
2010/05/07 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
jquery无缝向上滚动实现代码
2013/03/29 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
Python多线程编程简单介绍
2015/04/13 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
使用django实现一个代码发布系统
2019/07/18 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
C#面试常见问题
2013/02/25 面试题
remote接口和home接口主要作用
2013/05/15 面试题
中专自我鉴定范文
2013/10/16 职场文书
2013年高中生自我评价
2013/10/23 职场文书
本科毕业生专业自荐书范文
2014/02/05 职场文书
乡镇爱国卫生月活动总结
2014/06/25 职场文书
中专生自荐信
2014/06/25 职场文书
罚款通知怎么写
2015/04/22 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
vue组件vue-esign实现电子签名
2022/04/21 Vue.js