跨站脚本注入(Cross Site Scripting injection)

2019-08-17 05:39发布

我测试的Web应用程序。 我想写一个XSS脚本,将显示一个警告"Hello"

我写的第一个剧本是:

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

但并没有显示警报"Hello" 。 我发现XSS脚本的工作原理是

<SCRIPT >alert(String.fromCharCode(72,101,108,108,111,33))</SCRIPT >

我想知道为什么第一个脚本没有工作。

Answer 1:

最有可能的部位替换HTML实体双引号或试图逃跑他们在这使得它们不适合JavaScript的一些其他的方式。 当使用String.fromCharCode(...)你没有使用任何引号所以它会工作。 它得到的字符串的字符的ASCII码的列表,并在运行时出他们创建一个字符串。 因此,有没有必要进行任何引用。

避免这种XSS的适当的方式是更换<&lt; - 这样的脚本标记不能创建在所有。

需要注意的是>"&也应消毒包含HTML数据时,它们各自的HTML实体更换!不过,只有<绝对需要打败XSS攻击假设可以在HTML中使用任何不可信的数据属性(这就是"必须是消毒)



文章来源: Cross Site Scripting injection