首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xss:是否可以在“抛出新错误()”行后继续执行javascript代码?

xss:是否可以在“抛出新错误()”行后继续执行javascript代码?
EN

Security用户
提问于 2023-03-17 18:29:57
回答 2查看 135关注 0票数 1

有一个javascript文件,可以在throw new Error("error string")行之后注入代码。但是,在抛出语句之后,似乎无法执行任何代码。

代码语言:javascript
运行
复制
throw new Error("error string");
<my xss code here>

如果语句末尾没有分号,我认为可以通过这样的条件(三元)运算符运行代码:

代码语言:javascript
运行
复制
throw new Error("error string")
? 1==0: code

有什么方法可以在抛出语句之后运行代码吗?也许是一种无证的方式?

EN

回答 2

Security用户

回答已采纳

发布于 2023-03-19 15:56:45

语言中有许多意想不到的角落可以改变控制流。为了安全起见,在JavaScript的未来版本中可能会添加新的代码,我总是假设允许在任何地方注入代码是一个潜在的漏洞。

对于您的特定示例,通过本地悬挂的定义更改错误构造函数就足够了。下面的代码将输出“XSS”到控制台。

代码语言:javascript
运行
复制
throw new Error("error string");
function Error() { console.log('XSS'); }
票数 2
EN

Security用户

发布于 2023-03-17 22:21:04

如果您真的是在javascript文件中注入,那么我就找不到继续执行的方法。如果要在html文档中插入脚本标记,则可以关闭脚本标记并打开一个新的脚本标记,它将独立执行。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/269185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档