我正在测试一个网页应用程序。我想编写一个会显示警报信息“Hello”的XSS脚本。
我编写的第一个脚本是:
<script >alert("Hello");</script >
但是没有显示弹出框"Hello"
。我发现有效的XSS
脚本是
<SCRIPT >alert(String.fromCharCode(72,101,108,108,111,33))</SCRIPT >
我想知道为什么第一个脚本没有起作用。
我正在测试一个网页应用程序。我想编写一个会显示警报信息“Hello”的XSS脚本。
我编写的第一个脚本是:
<script >alert("Hello");</script >
但是没有显示弹出框"Hello"
。我发现有效的XSS
脚本是
<SCRIPT >alert(String.fromCharCode(72,101,108,108,111,33))</SCRIPT >
我想知道为什么第一个脚本没有起作用。
String.fromCharCode(...)
时,您不需要使用任何引号,因此它可以正常工作。它获取字符串的字符的ASCII代码列表,并在运行时将它们组合成一个字符串。因此没有任何引用的必要。<
替换为 <
,这样就根本无法创建脚本标记。>
、"
和 &
替换为相应的HTML实体!然而,只有在假定HTML属性中不可能使用未受信任的数据时(这就是需要清理 "
的地方),<
才绝对必要来避免XSS攻击。String.fromCharCode
是一个普通的JavaScript方法(在此处解释:http://www.w3schools.com/jsref/jsref_fromcharcode.asp)。您可以在`<script>`环境中使用任何JavaScript代码。 - EichString.fromCharCode
一起工作的原因。 - ThiefMaster