文章总结: 本文介绍了XSS漏洞挖掘中括号被转义的绕过方法。作者提出使用反引号替代括号调用函数,基于ES6模板字面量特性。通过使用alertxss等语法,可绕过常见的转义函数,如htmlspecialchars。这种方法为XSS漏洞利用提供了新的思路。
综合评分: null
文章分类: WEB安全,漏洞分析,渗透测试
挖掘xss中括号被转义的绕过措施
迪哥讲事
2025年11月23日 12:01
江西
以下文章来源于Spade sec
,作者0xsdeo
Spade sec
.
个人运营账号,现役大三生,目前专注于js逆向,python编程,Web安全,渗透测试。我的公众号用中文翻译过来就是黑桃安全,所以大家在日常聊天时可以叫我黑桃。
0x00 前言
注:本文给出的绕过措施是一个替代方案。
0x01 正文
首先我想问读者朋友们一个问题:在挖掘xss时是否遇到过转义括号的问题?我相信不少朋友遇到过,例如我这里拿不久前保安姐发的那篇文章的案例给大家看一下:
欢迎各位关注保安姐的公众号:重生之成为赛博女保安
这个问题还是比较棘手的,一般我们用到括号都是想执行一些函数,但是现在括号被转义了我们就得另寻他路。
不过我想知道有没有读者朋友看过我在轩白公众号发的一篇文章:
这篇文章是我写的,大家也可以支持一下轩白的公众号:隼目安全,我在这篇文章中分析了一个恶意链接,攻击者主要是利用了网站js造成了一个页面替换的效果,不过这都不是重点,重点是攻击者是通过两个反引号调用的函数:
这是我去年写的文章,我当时在分析这个链接时看到这个操作后令我无比震撼,整个利用链都很巧妙,各位如有兴趣可以去看一下那篇文章。
接下来我在本篇文章中给大家演示一下通过两个反引号调用函数的实际操作:
console.log`1`;
alert`xss`;
我觉得还是很有参考价值的,至于到底怎么实现的,我们就得从es6当中找答案了(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals):
通过描述我们可以知道,在js中两个反引号引起来的内容叫做模板字面量,也叫做模板字符串,一般会被用作字符串插值,也就是像如下这种效果:
let expression = 'test';`string text ${expression} string text`
我们可以通过改变expression变量的值创建不同的字符串,这就是模板字符串的功能之一,另一个功能就是它可以与自定义标签函数一起使用,来对模板字面量的不同部分执行任何操作。具体调用方法:
也就是说上文中我演示的通过两个反引号调用的那两个函数就叫做标签函数。MDN演示:
最重要的是反引号并不会被转义,例如我就拿php中的经典函数htmlspecialchars进行测试:
效果显而易见,所以我认为反引号是我们在调用函数时一个比较不错的替代方案,当然仅限于挖掘xss当中。
如果你是一个长期主义者,欢迎加入我的知识星球,本星球日日更新,绝非简单搬运,包含号主大量一线实战,全网独一无二,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
往期回顾
#
如何利用ai辅助挖漏洞
#
如何在移动端抓包-下
#
如何绕过签名校验
#
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:迪哥讲事 《挖掘xss中括号被转义的绕过措施》