Javascript 如何执行<;脚本>;标记出现在AJAX调用中,而不在客户端JS中进行任何更改 [ { “图书ID”:“1”, “书籍名称”:“UNIX**警报('test')**”, “类别”:“计算机”, “价格”:“113” }, { “图书ID”:“2”, “书名”:“第二册”, “类别”:“编程”, “价格”:“562” } ]
这是我通过API发送的JSON,我与多人共享。当我使用JavaScript解析JSON时,Javascript 如何执行<;脚本>;标记出现在AJAX调用中,而不在客户端JS中进行任何更改 [ { “图书ID”:“1”, “书籍名称”:“UNIX**警报('test')**”, “类别”:“计算机”, “价格”:“113” }, { “图书ID”:“2”, “书名”:“第二册”, “类别”:“编程”, “价格”:“562” } ],javascript,json,security-testing,Javascript,Json,Security Testing,这是我通过API发送的JSON,我与多人共享。当我使用JavaScript解析JSON时,标记不会被执行。我应该在注入JSON的JS中做哪些修改,以便执行标记,而无需在客户端JS上做任何额外的工作。可能吗?不可能 如果用于将代码插入文档的技术没有触发JS,则更改插入的内容不会解决此问题。您有两种选择: 发现客户端页面中的漏洞并加以利用,例如,如果客户端js获取API答案并将其打印在未初始化的标记中,则可以发送类似警报(1)的内容,以便脚本关闭标签,注入脚本并再次打开 或者,您可以在clients
标记不会被执行。我应该在注入JSON的JS中做哪些修改,以便执行
标记,而无需在客户端JS上做任何额外的工作。可能吗?不可能
如果用于将代码插入文档的技术没有触发JS,则更改插入的内容不会解决此问题。您有两种选择:
发现客户端页面中的漏洞并加以利用,例如,如果客户端js获取API答案并将其打印在未初始化的
标记中,则可以发送类似警报(1)
的内容,以便脚本关闭标签,注入脚本并再次打开
或者,您可以在clientside中进行最小的修改,并从API中获取对象,如下所示:
[
{
"Book ID": "1",
"Book Name": "UNIX **<script type='text/javascript'>alert('test')</script>**",
"Category": "Computers",
"Price": "113"
},
{
"Book ID": "2",
"Book Name": "Book two",
"Category": "Programming",
"Price": "562"
}
]
然后,在clientside中使用以下命令运行它:
{
"Book ID": "1",
"Book Name": "UNIX",
"script": "alert('test')",
"Category": "Computers",
"Price": "113"
},
Function(obj.script)();