探索挖掘xss中括号被转义的绕过措施

admin 2025年3月5日21:18:47评论24 views字数 1026阅读3分25秒阅读模式

0x00 前言

好久不见各位!这两天忙着开学,今天才安顿好,终于可以闲下来给大家更新啦。其实这篇文章本来是想着开学前发的,可惜时间实在是不充裕就只能等着开学后发了。

注:本文给出的绕过措施是一个替代方案。

0x01 正文

首先我想问读者朋友们一个问题:在挖掘xss时是否遇到过转义括号的问题?我相信不少朋友遇到过,例如我这里拿不久前保安姐发的那篇文章的案例给大家看一下:

探索挖掘xss中括号被转义的绕过措施
欢迎各位关注保安姐的公众号:重生之成为赛博女保安

这个问题还是比较棘手的,一般我们用到括号都是想执行一些函数,但是现在括号被转义了我们就得另寻他路。

不过我想知道有没有读者朋友看过我在轩白公众号发的一篇文章:

探索挖掘xss中括号被转义的绕过措施

这篇文章是我写的,大家也可以支持一下轩白的公众号:隼目安全,我在这篇文章中分析了一个恶意链接,攻击者主要是利用了网站js造成了一个页面替换的效果,不过这都不是重点,重点是攻击者是通过两个反引号调用的函数:

探索挖掘xss中括号被转义的绕过措施

这是我去年写的文章,我当时在分析这个链接时看到这个操作后令我无比震撼,整个利用链都很巧妙,各位如有兴趣可以去看一下那篇文章。

接下来我在本篇文章中给大家演示一下通过两个反引号调用函数的实际操作:

console.log`1`;
探索挖掘xss中括号被转义的绕过措施
alert`xss`;
探索挖掘xss中括号被转义的绕过措施

我觉得还是很有参考价值的,至于到底怎么实现的,我们就得从es6当中找答案了(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals):

探索挖掘xss中括号被转义的绕过措施
探索挖掘xss中括号被转义的绕过措施

通过描述我们可以知道,在js中两个反引号引起来的内容叫做模板字面量,也叫做模板字符串,一般会被用作字符串插值,也就是像如下这种效果:

let expression'test';`string text ${expression} string text`
探索挖掘xss中括号被转义的绕过措施

我们可以通过改变expression变量的值创建不同的字符串,这就是模板字符串的功能之一,另一个功能就是它可以与自定义标签函数一起使用,来对模板字面量的不同部分执行任何操作。具体调用方法:

探索挖掘xss中括号被转义的绕过措施

也就是说上文中我演示的通过两个反引号调用的那两个函数就叫做标签函数。MDN演示:

探索挖掘xss中括号被转义的绕过措施

最重要的是反引号并不会被转义,例如我就拿php中的经典函数htmlspecialchars进行测试:

探索挖掘xss中括号被转义的绕过措施

效果显而易见,所以我认为反引号是我们在调用函数时一个比较不错的替代方案,当然仅限于挖掘xss当中。

原文始发于微信公众号(Spade sec):探索挖掘xss中括号被转义的绕过措施

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月5日21:18:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   探索挖掘xss中括号被转义的绕过措施https://cn-sec.com/archives/3793637.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息