Javascript 有人能解释一下这些XSS测试字符串吗?

Javascript 有人能解释一下这些XSS测试字符串吗?,javascript,xss,Javascript,Xss,最近我发现了这个关于XSS和web应用程序安全性的教程-> 一开始,有一些字符串需要注入,以测试站点是否易受xss攻击。这些字符串是: ';alert(String.fromCharCode(88,83,83))//';alert(String.fromCharCode(88,83,83))//"; alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//-- ></SCRIPT>

最近我发现了这个关于XSS和web应用程序安全性的教程->

一开始,有一些字符串需要注入,以测试站点是否易受xss攻击。这些字符串是:

';alert(String.fromCharCode(88,83,83))//';alert(String.fromCharCode(88,83,83))//";
alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//--
></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT> 
”;警报(String.fromCharCode(88,83,83))/';警报(String.fromCharCode(88,83,83))/“;
警报(String.fromCharCode(88,83,83))/“;警报(String.fromCharCode(88,83,83))//--
>“>'>警报(String.fromCharCode(88,83,83))

”;!--“=&{()}
我知道XSS的基本概念,但在这里我不明白为什么在第一个字符串中重复出现“alert(String.fromCharCode(88,83,83)),为什么会出现/”//“;//-->需要注释(在搜索xss bug时以这种方式使用它们是否意味着特殊的意义?)。 在第二个字符串中,&{()}序列的用途是什么


有人能给我举个具体的例子来解释这两个字符串如何工作,以便检索web应用程序中的xss错误吗?因为在我链接的网站上没有给出任何解释…

这看起来像是在尝试几种不同的注入,所以我将尝试一次分解一种:

第一次注射 此注入尝试终止JavaScript字符串文字(使用
),然后终止语句(使用
),并调用
警报(string.fromCharCode(88,83,83))
,这将导致包含“XSS”的弹出框。以下
/
是尝试“注释掉”语句的其余部分,这样就不会出现语法错误,脚本将执行

第二次注射 与第一次注入类似,但它使用
试图终止JavaScript字符串文字

第三次注射
这是一个常用字符串,用于测试用户输入中使用的过滤器和/或编码(如果有)。通常,此注入后的页面源将包含
XSS
88,83,83只是“XSS”“。重点是尝试打破各种引号、标记等。@DaveNewton我知道警报应该做什么,我想了解的是‘打破各种引号、标记等’是如何工作的,如果你知道的话,你能解释一下吗?如果你在客户机上呈现了该字符串,它会是什么样子?如果它在标签里会是什么样子?作为JS代码的一部分呈现?等等。为什么不试着用你能想到的所有方式呈现它,而不逃避它呢?目前我没有笔记本电脑可以尝试,但我肯定会尽快回家,是好奇心和立即理解的欲望促使我写下这个问题,因为如果刚刚测试过它的人能够以一种可以理解的方式解释它,那么对于所有遇到相同问题的SO社区来说,这将是一个很好的备忘单,所以我尝试自己测试它,但我仍然会等待你或其他人以一种简单完整的方式回答,这可以立即帮助我们理解这个主题。无论如何,谢谢你!在你的脑子里做:想想你是如何渲染的,以及可能会发生什么。有很多地方用具体的例子来解释这一点,我不认为我们需要一个全面的列表。例如
'';!--"<XSS>=&{()}
';alert(String.fromCharCode(88,83,83))//
";alert(String.fromCharCode(88,83,83))//
--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>
'';!--"<XSS>=&{()}