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跨域总结之window.name实现的跨域数据传输
Nov 01 Javascript
jquery仿QQ登录账号选择下拉框效果
Mar 22 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
Mar 30 Javascript
开启BootStrap学习之旅
May 04 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
Sep 20 Javascript
js实现无缝滚动图
Feb 22 Javascript
微信小程序 判断手机号的实现代码
Apr 19 Javascript
vue2 router 动态传参,多个参数的实例
Nov 10 Javascript
基于mpvue的小程序项目搭建的步骤
May 22 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
Dec 10 Javascript
viewer.js实现图片预览功能
Jun 24 Javascript
springboot+vue实现文件上传下载
Nov 17 Vue.js
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
基于mysql的bbs设计(四)
2006/10/09 PHP
PHP实现图片简单上传
2006/10/09 PHP
弄了个检测传输的参数是否为数字的Function
2006/12/06 PHP
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
php实现微信扫码支付
2017/03/26 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
python str与repr的区别
2013/03/23 Python
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
浅谈python中get pass用法
2019/03/19 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
python模块如何查看
2020/06/16 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
项目建议书怎么写
2014/05/15 职场文书
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python