绕过用编码方式阻止XSS攻击的几个例子
阻止攻击的常用方法是:在将HTML返回给Web浏览器之前,对攻击者输入的HTML进行编码。HTML编码使用一些没有特定HTML意义的字符来代替那些标记字符(如尖括号)。这些替代字符不会影响文本在web浏览器上的显示方式,仅仅用于阻止HTML渲染引擎将数据识别成HTML标记。这种方法能阻止一些XSS攻击,但是以下几种情况例外:
在Script块中插入:
<script>
...
var strEmailAdd = 'attacker data';
...
</script>
在这个例子中,数据本身就已经在script块中了,攻击者要做的就是关闭引用标记。
...
var strEmailAdd = '';alert('Hi');//
...
引号加分号结束,最后可以注释掉其他输出内容避免出现阻止脚本运行的语法错误。
使用事件:
在HTML中,标记的属性能够被封装在单引号和双引号中,或者不需要引号。如果HTML的设计人员没有使用双引号来封装属性值,并对用户的数据进行了HTML编码,那么,这些不可信的数据会被限制在标记的范围内,而不是限制在属性的范围内。大部分的标记有事件发生的时候,用户定义的与那个事件相关联的脚本就会运行。
如果不可信数据经过HTML编码,并且在HTML中返回如下内容的时候,脚本仍然能够运行:
<INPUT name="txtinput" type="text" value='unTrustData'>
如果 OurData' onclick=alert(Hi) junk=' 作为不可信数据发送,将会返回如下所示HTML:
<INPUT name="txtinput" type="text" value=' OurData' onclick=alert('Hi') junk=''>
当用户单击文本框时,onclick事件就被激发了,脚本就会运行。
使用Style:
Style中的表达式能够被用来运行任意脚本,例如:
<INPUT name="txtinput" type="text" value="SomeValue" style="font-family:expression(alert('Hi'))">
脚本协议:
通过IMG标记中src属性值的形式,将它们返回。
<IMG src="untrusted data">
两种不同过滤的例子:
1.在返回数据前,删除输入中的字符串。但是如果输入scriscriptpt,删除后剩下的就是script。
2.通过转义来阻止分隔属性。
深入理解浏览器中的解析器:在<script>和</script>之间的任何东西都会被当作脚本,并对它们进行语法检查。
<script>
var strMyVar = '</script><script>alert('快船总冠军')</script>';
...
</script>
浏览器会把上述内容解释为两个<script>块,第一个块有语法错误,并且不会运行。但是第二个块语法正确会运行。
绕过用编码方式阻止XSS攻击的几个例子的更多相关文章
- WEB安全测试之XSS攻击
目录结构 1.背景知识 2.XSS漏洞的分类 3.XSS防御 4.如何测试XSS漏洞 5.HTML Encode 6.浏览器中的XSS过滤器 7.ASP.NET中的XSS安全机制 一.背景知识 1.什 ...
- XSS 攻击的防御
xss攻击预防,网上有很多介绍,发现很多都是只能预防GET方式请求的xss攻击,并不能预防POST方式的xss攻击.主要是由于POST方式的参数只能用流的方式读取,且只能读取一次,经过多次尝试,自己总 ...
- 使用 PHP 构建的 Web 应用如何避免 XSS 攻击
本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据:然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态 ...
- [oldboy-django][2深入django]xss攻击 + csrf
1 xss攻击 xss攻击(跨站脚本攻击,用户页面提交数据来盗取cookie) - 慎用safe, 和mark_safe -- 如果要用,必须要过滤 - 定义: 用户提交内容,在页面展示用html显示 ...
- web安全之XSS攻击原理及防范
阅读目录 一:什么是XSS攻击? 二:反射型XSS 三:存储型XSS 四:DOM-based型XSS 五:SQL注入 六:XSS如何防范? 1. cookie安全策略 2. X-XSS-Protect ...
- WEB安全实战(二)带你认识 XSS 攻击
前言 上一篇文章写了关于 WEB 安全方面的实战,主要是解决 SQL 盲注的安全漏洞.这篇文章本来是要写一篇关于怎样防治 XSS 攻击的,可是想来想去,还是决定先从理论上认识一下 XSS 吧.下一篇文 ...
- 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击 一.总结 一句话总结:比如用户留言功能,用户留言中写的是网页可执行代码,例如js代码,然后这段代码在可看到这段留言的不同一户的显示上就会 ...
- [BUGCASE]CI框架的post方法对url做了防xss攻击的处理引发的文件编码错误
一.问题描述 出现问题的链接: http://adm.apply.wechat.com/admin/index.php/order/detail?country=others&st=1& ...
- WEB安全实战(五)XSS 攻击的第二种解决方式(推荐)
序 说到 XSS 攻击,前边已经有两篇文章在讲这个事了,这次又拿出来说,主要是针对近期工作中的一些新的问题.那么之前是怎么解决问题的呢?为什么又要换解决方式?以下就具体的跟大家分享一下. 旧方案 公司 ...
随机推荐
- idea 断点上面有x
背景:确定你的java代码没有问题,并且编译通过 问题:debug 启动项目的时候没有问题,idea打断点的时候左边红色断点上面有x 原因:java文件和class文件不一致, 解决方法:ant cl ...
- 阿里八八Alpha阶段Scrum(8/12)
今日进度 叶文滔: 已经成功解决兼容性问题,目前正在嵌入多级按钮API,预计明天可以完成 王国超: 今天终于debug了,被卡了几天的fragment嵌套listview终于成功了 俞鋆: 研究了一下 ...
- Django商城项目笔记No.1项目准备工作
Django商城项目笔记No.1项目准备工作 一.本项目商城属于B2C商业模式 二.项目采用前后端分离的应用模式 前端使用Vue.js 后端使用Django REST framework 1.创建gi ...
- 2.Dubbo2.5.3注册中心和监控中心部署
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.注册中心Zookeeper安装 (1)搭建要求 zk服务器集群规模不小于3个节点要求各服务器之间系统时间要 ...
- 笔记一:CSS选择器
0.前言:无论学什么,前端都是绕不开的一门技术,对于不同的人需求不同,作为一个python开发者不仅需要能读懂基本的html/css以及js代码,还要会使用它的常用的标签,以及了解比较有用的标签,把逻 ...
- Python2.7-fractions
fractions 模块,提供分数格式存储数据,没多大用处,除了模块里的最大公约数函数 gcd(a,b) 模块类和方法: fractions.Fraction(numerator=0, denomin ...
- 将如下三组不同类型的数据利用DataInputStream和DataOutputStream写入文件,然后从文件中读出
三组数据如下: {19.99 , 9.99 , 15.99 , 3.99 , 4.99} {12 , 8 , 13 ,29 ,50} {"Java T-shirt" , " ...
- 转自:strcmp函数实现及详解
strcmp函数是C/C++中基本的函数,它对两个字符串进行比较,然后返回比较结果,函数形式如下:int strcmp(constchar*str1,constchar*str2);其中str1和st ...
- 数据预取 __builtin_prefetch()
__builtin_prefetch() 是 gcc 的一个内置函数.它通过对数据手工预取的方法,减少了读取延迟,从而提高了性能,但该函数也需要 CPU 的支持. 该函数的原型为: void __bu ...
- AbelSu教你搭建go语言开发环境
go语言官网:https://golang.org/ windows:官网下载go1.6.windows-amd64.msi安装文件,安装位置选择默认C:\Go\安装结束后配置环境变量Path: C: ...