一直以来sql注入被广泛关注,也有专门的防注系统代码。发现,如果代码不严谨也会有cookie欺骗/注入的情况。原来, 防注入系统没有注意到 Cookies 的问题!这里以ASP为例,分析一下cookie欺骗/注入的产生。
 
 

ASP获取参数主要有下面两种: http://www.111cn.net/asp/5/58615.htm
Request.QueryString (GET) 或 Request.Form (POST)
我们有时为了简化代码,会写成 ID=Request("ID"),正是因为这样写法出现了问题……

原来WEB服务是这样读取数据的:
先取GET中的数据,没有再取POST中的数据,还会去取Cookies中的数据!这个我也才发现。
通常的防注入系统,他会检测GET和POST中的数据,如果有特殊字符就禁止数据的提交,而上面简略写法,就不会被check

到。

举例说明,参数提交及获取原理:

/1.asp?id=123

如果只输:/1.asp 就不能看到正常的数据,因为没有参数!
想知道有没有Cookies问题(也就是有没有Request("XXX")格式问题)

先用IE输入:/1.asp加载网页,显示不正常(没有输参数的原因),之后在IE输入框再输入
javascript:alert(document.cookie="id="+escape("123"));
说明:
document.cookie="id="+escape("123") 就是把 123 保存到Cookies 的 ID 中。
alert(xxx) 就是弹对话框。

按回车后,会看到弹出一个对话框 内容是: id=123,之后,刷新网页,如果正常显示,表示是用Request("ID") 这样的

格式收集数据,就可以试Cookies注入了。

在地址栏中输入: javascript:alert(document.cookie="id="+escape("123 and 3=3"));
刷新页面,如果显示正常,可以再试下一步(如果不正常,就有可能也有过滤了 www.111cn.net)

javascript:alert(document.cookie="id="+escape("123 and 3=4"));刷新一下页面如果不正常显示,这就表示可以注入

了。

如果代码是用Request.QueryString或Request.Form收集数据的话,是没有Cookies注入问题的,因为服务程序是直截从

GET或POST中读取数据的,Cookies是否有数据代码不会去获取的。

asp中cookie欺骗/注入原理与防范的更多相关文章

  1. SQL注入原理及防范

    1.1.2 正文 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 具体来说,它是利用现有应用程序,将(恶 ...

  2. 菜鸟详细解析Cookie注入原理

    一.SQL注入原理 我以aspx为例,现在我们来研究下Cookie注入是怎么产生的,在获取URL参数的时候,如果在代码中写成Request[“id”],这样的写法问题就出现了.我先普及下科普知识,在a ...

  3. cookie注入原理详解(一)

    那我们还是围绕以下几个问题来看看cookie注入: 1.什么是cookie注入? 2.为什么要cookie注入? 3.怎样cookie注入? 1.什么是cookie注入? ♦cookie注入的原理是: ...

  4. cookie注入原理

    cookie注入原理-->红客联盟 http://www.2cto.com/article/201202/118837.html 前言: document.cookie:表示当前浏览器中的coo ...

  5. ASP.NET Core中的依赖注入(5): ServiceProvider实现揭秘 【总体设计 】

    本系列前面的文章我们主要以编程的角度对ASP.NET Core的依赖注入系统进行了详细的介绍,如果读者朋友们对这些内容具有深刻的理解,我相信你们已经可以正确是使用这些与依赖注入相关的API了.如果你还 ...

  6. ARP工作过程、ARP欺骗的原理和现象、如何防范ARP欺骗

      地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议. 下面假设在一个局域网内,主机A要向主机B发送IP数据报. ARP ...

  7. ASP.NET Cookie概念、CURD操作、原理、实际运用

    会话就WEB开发来说,一个会话就是你通过浏览器与服务器之间的一次通话,只不过这种通话是以用浏览器浏览的方式来实现的. 就会话的应用来说,一般会话是用来识别用户的,比如你可以使用会话级变量记录当前用户已 ...

  8. ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入

    原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...

  9. ASP.NET Core 在 JSON 文件中配置依赖注入

    前言 在上一篇文章中写了如何在MVC中配置全局路由前缀,今天给大家介绍一下如何在在 json 文件中配置依赖注入. 在以前的 ASP.NET 4+ (MVC,Web Api,Owin,SingalR等 ...

随机推荐

  1. OneProxy读写分离配置操作手册

    1.确保已配置好主备集群 A)配置 可参考MySQL官方文档(https://dev.mysql.com/doc/refman/5.6/en/replication-howto.html) 或者我的博 ...

  2. before和after的强大

    前言:刚学他两个的时候,是用于清除浮动,而且曾单纯的以为俩只有这作用. 但看到几篇博客后,发现自己是多么的无知,他两个的强大远不止于此. 当然,这篇文章大多数是借鉴网上的实例,在加上自己的些许简介而成 ...

  3. 024-ActionResult解说

    ActionResult是一个抽象类,是Action运行后的回传类型,但是当Action回传ActionResult的时候,其实并不包含这个ActionResult的运行结果,而是包含运行这个Acti ...

  4. pyhton2 python3 语法区别

    几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下.为了简化这个转换过程,Python 3自带了一个叫做2to3的实用脚本(Utility Script),这个脚本会 ...

  5. hdu----(2222)Keywords Search(ac自动机)

    Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  6. hdu5883 The Best Path(欧拉路)

    题目链接:hdu5883 The Best Path 比赛第一遍做的时候没有考虑回路要枚举起点的情况导致WA了一发orz 节点 i 的贡献为((du[i] / 2) % 2)* a[i] 欧拉回路的起 ...

  7. Eclipse创建第一个springWebMVC项目

    1.第一步:配置中央调度器(DispatcherServlet) 2.第二步:配置处理器(Controller) 3.第三步:在applicationContext.xml文件中注册控制器 注:记得头 ...

  8. SQL语句技巧(上个样式太差了)

      以下并非本人整理,但是看后感觉相当不错,特此分享. 1.应用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数:通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担:能够分 ...

  9. MVC1-5直接访问静态页面

    MVC模式下默认是无法访问站点内静态页面,昨日百度找了半天试了半天才试成功. 默认在Views文件外的静态页面可以访问,若要访问Views里的静态页面则需要修改View文件夹中的web.config: ...

  10. Tomcat配置虚拟主机的两种方式

    1.基于主机名的虚拟主机配置 在随意盘符下建立一个目录作为虚拟地址的目录.例如:F:\virtualhost1,在其下建立 test1.html,写入内容例如:test 在tomcat/conf/se ...