Javascript 跨站点脚本注入

Javascript 跨站点脚本注入,javascript,xss,Javascript,Xss,我正在测试一个web应用程序。我想编写一个XSS脚本,它将显示一个警报“Hello” 我写的第一个剧本是: <script >alert("Hello");</script > 我想知道为什么第一个脚本不起作用。最有可能的情况是,该站点用HTML实体替换双引号,或者尝试以其他方式将其转义,使其不适合JavaScript。 当使用String.fromCharCode(…)时,您不必使用任何引号,这样它就可以工作了。它获取字符串字符的ASCII码列表,并在运行时从中创建

我正在测试一个web应用程序。我想编写一个
XSS
脚本,它将显示一个警报
“Hello”

我写的第一个剧本是:

<script >alert("Hello");</script > 

我想知道为什么第一个脚本不起作用。

最有可能的情况是,该站点用HTML实体替换双引号,或者尝试以其他方式将其转义,使其不适合JavaScript。 当使用
String.fromCharCode(…)
时,您不必使用任何引号,这样它就可以工作了。它获取字符串字符的ASCII码列表,并在运行时从中创建一个字符串。所以不需要任何引用

避免此类XSS的正确方法是将
请注意,在清理包含HTML的数据时,代码>
&
也应替换为各自的HTML实体!但是,只有
Yes@ThiefMaster,网站才会将第一个脚本中的“Hello”更改为\“Hello”\" . 我想知道为什么网站会这样做。另外,我想知道“String.fromCharCode(72101108111,33)”如何显示Hello<代码>字符串。fromCharCode
是一种普通的JavaScript方法(已解释)。你可以在你的
环境中使用任何JavaScript代码。没有网站代码访问权限的人绝对不可能知道他们为什么用反斜杠转义双引号。当参数化查询不是选项时,通常只有单引号以这种方式转义以在SQL查询中使用它们。我已经解释了为什么它可以与上面的
String.fromCharCode
一起使用。如果您想了解更多有关XSS模糊处理的信息,我可以向您推荐。我不确定您为什么还没有接受答案。它看起来很结实。
<SCRIPT >alert(String.fromCharCode(72,101,108,108,111,33))</SCRIPT >