如果URL插入到JavaScript字符串中,是否可以进行JavaScript注入?
是否可以在以下上下文中插入和执行javascript?或者终止JavaScript字符串如果URL插入到JavaScript字符串中,是否可以进行JavaScript注入?,javascript,security,xss,code-injection,url-encoding,Javascript,Security,Xss,Code Injection,Url Encoding,是否可以在以下上下文中插入和执行javascript?或者终止JavaScript字符串 URL插入到JavaScript字符串中(双引号分隔) URL是由浏览器而不是服务器端编码的URL。 (为了简单起见,仅使用Firefox和Chrome) URL永远不会被解码(JavaScript或后端) 例如: var baseURL = "http://example.com/?[USER CONTROLLED INPUT]"; 请注意,通过提供以“\”结尾的字符串,可能会导致未终止的字符串文字
- URL插入到JavaScript字符串中(双引号分隔)
- URL是由浏览器而不是服务器端编码的URL。 (为了简单起见,仅使用Firefox和Chrome)
- URL永远不会被解码(JavaScript或后端)
var baseURL = "http://example.com/?[USER CONTROLLED INPUT]";
请注意,通过提供以“\
”结尾的字符串,可能会导致未终止的字符串文字JavaScript错误。假设此错误不会影响用户输入的其他使用
注意:浏览器URI编码目前有所不同
给定以下URL:
example.com?!*'();:@&=+$,/?[]"%-.<>\^_`{|}~#
http://example.com/?!*%27();:@&=+$,/?[]%22%-.%3C%3E\^_`{|}~#
如果这是唯一的注入点,那么我必须同意您的假设,即唯一可能造成的损害是未终止的JavaScript字符串文字 但是,如果有多个注射点,即。e、 ,三个或更多,在一行中,如下所示:
var x = "[USER CONTROLLED INPUT]", y = "[USER CONTROLLED INPUT]", z = "[USER CONTROLLED INPUT]";
可以插入JavaScript代码:
x = \
y = +alert(1)+
z = //
因为这将导致:
var x = "\", y = "+alert(1)+", z = "//";
要求注入点都在同一行中。我怀疑
是否确实提交了。)如果您的服务器正在输出[用户控制输入]
,则是的,用户可以输入“警报('foobar');”
“警报”而不破坏代码。如果它是由javascript构建的,那么它不会崩溃,除非它被用来生成html。最好的一种是正确的。凯文:用户的特殊字符是由浏览器编码的url。结果是:“example.com/?%22;警报(%27foobar%27);%20=%20%22”;虽然它可能是一个凌乱的字符串,但它不是javascript注入。
var x = "\", y = "+alert(1)+", z = "//";