javascript alert() 函数的算术运算
Arithmetic operation around javascript alert() function
我一直在使用 portswigger academy 练习一些黑客技能,并且在其中一个实验室中有一个搜索引擎具有反映的 XXS 漏洞。
在搜索引擎中输入字符串 foo
生成此源代码:
<section class="blog-header">
<h1>0 search results for 'foo'</h1>
</section>
实验室的解决方案是输入 '-alert(1)-'
生成的以下源代码:
<section class="blog-header">
<h1>0 search results for ''-alert(1)-''</h1>
</section>
谁能解释一下为什么要插入-
算术运算? -
除了减法运算外,如何与 JavaScript 一起使用?
How does - work with JavaScript except for the subtraction operation?
-
在字符串或模板文字(其中只是 -
字符)之外所做的唯一事情是:
- 减法(二元运算符,
a - b
)
- 否定(一元运算符,
-a
)
- 在正则表达式文字中,它表示字符 class 中的一个范围(例如,
/[A-F0-9]/i
表示十六进制)。
在您引用的内容中,-
只是字符串中的一个字符。那里没有成功的 XSS 攻击。 (也许它在网站的其他地方。)
这似乎不对...我在您的示例中没有看到任何 JS 执行!警报只是文本的一部分。
但是,如果在其他地方使用它,尤其是在服务器生成的 Javascript 代码中,那么它就有意义了。因为 var x = 'foo'
会变成 var x = '' - alert(1) - ''
,这确实会从空字符串中减去 alert(1)
(即 undefined
)的结果,但它也适用于 +
或其他任何东西,因为它只是为了从字符串中转义并将警报评估为代码。 x
变量将包含垃圾,但您已经实现了结果 - 执行代码。
我一直在使用 portswigger academy 练习一些黑客技能,并且在其中一个实验室中有一个搜索引擎具有反映的 XXS 漏洞。
在搜索引擎中输入字符串 foo
生成此源代码:
<section class="blog-header">
<h1>0 search results for 'foo'</h1>
</section>
实验室的解决方案是输入 '-alert(1)-'
生成的以下源代码:
<section class="blog-header">
<h1>0 search results for ''-alert(1)-''</h1>
</section>
谁能解释一下为什么要插入-
算术运算? -
除了减法运算外,如何与 JavaScript 一起使用?
How does - work with JavaScript except for the subtraction operation?
-
在字符串或模板文字(其中只是 -
字符)之外所做的唯一事情是:
- 减法(二元运算符,
a - b
) - 否定(一元运算符,
-a
) - 在正则表达式文字中,它表示字符 class 中的一个范围(例如,
/[A-F0-9]/i
表示十六进制)。
在您引用的内容中,-
只是字符串中的一个字符。那里没有成功的 XSS 攻击。 (也许它在网站的其他地方。)
这似乎不对...我在您的示例中没有看到任何 JS 执行!警报只是文本的一部分。
但是,如果在其他地方使用它,尤其是在服务器生成的 Javascript 代码中,那么它就有意义了。因为 var x = 'foo'
会变成 var x = '' - alert(1) - ''
,这确实会从空字符串中减去 alert(1)
(即 undefined
)的结果,但它也适用于 +
或其他任何东西,因为它只是为了从字符串中转义并将警报评估为代码。 x
变量将包含垃圾,但您已经实现了结果 - 执行代码。