我正在尝试在我正在测试的网站上制作反映跨站点脚本的PoC。我在Javascript代码中找到了一个可以注入命令的地方,但问题是前面的代码块会抛出一个“未定义”的错误,因此(至少我认为是这样)我的注入代码没有被执行。有没有机会执行代码呢?
以下是代码:
UndefinedObject.Init({
Var1:"a",
Var2:"b",
Var3:"can_be_injected_with_JS_code")}
我无法注入任何HTML标记,因为这些标记已被应用程序过滤。
非常感谢!
答案 0 :(得分:1)
将它们包裹在try catch块下。
答案 1 :(得分:1)
在执行序列中,如果代码失败,则不执行剩余部分。可以使用try...catch捕获Javascript错误(“异常”)(如果您也可以注入此try-catch)。
如果有不同的流程(通过另一个事件),代码将继续。
答案 2 :(得分:1)
您可以尝试使用try-catch,如果这样做无效,请尝试使用window.onerror
答案 3 :(得分:1)
通常,正确的方法是使用 try-catch-finally 或 try-finally :
如果您对错误做了些什么 - 记录或做其他事情。 Catch也可用于执行代码,但不是一种好的做法。如果你愿意,你可以对错误一无所知,这就是使用 finally 的原因。
最后用于执行一段代码很重要,无论是否抛出错误。例如,当您使用最终中的文件时,使用C ++或其他语言,文件将被关闭(您无法将其打开)。请查看here以获取一些示例。