可以通过重写数组构造函数来利用JSON响应,或者如果恶意值不是JavaScript字符串转义的话.
让我们假设这两个向量都以正常方式处理.谷歌通过在所有JSON前加上以下内容来捕获JSON响应直接来源:
throw 1; < don't be evil' >
Run Code Online (Sandbox Code Playgroud)
然后是JSON的其余部分.因此,Evil博士不能,使用此处讨论的那种漏洞利用http://sla.ckers.org/forum/read.php?2,25788获取您的cookie(假设您已登录),将以下内容放在他的网站上:
<script src="http://yourbank.com/accountStatus.json">
Run Code Online (Sandbox Code Playgroud)
至于字符串转义规则,如果我们使用双引号,我们需要在每个前面加上反斜杠,每个反斜杠加上另一个反斜杠等.
但我的问题是,如果你正在做所有这些怎么办?
Burpsuite(自动安全工具)检测在JSON响应中返回unHTML转义的嵌入式XSS尝试,并将其报告为XSS漏洞.我有一份报告说我的应用程序包含此类漏洞,但我不相信.我已经尝试过了,我无法进行漏洞利用工作.
所以我不认为这是正确的,但我问你StackOverflow社区,要权衡.
有一个特定的案例,IE MIME类型嗅探,我认为可能会导致漏洞利用.毕竟,IE 7仍然具有"功能",无论Content-Type标头如何,都会执行嵌入在图像注释中的脚本标签.我们首先要抛开这种明显愚蠢的行为.
当然,根据旧的默认jQuery行为,JSON将由本机JavaScript解析器(Firefox中的Window.JSON)或eval()解析.在任何情况下,以下表达式都不会导致执行警报:
{"myJSON": "legit", "someParam": "12345<script>alert(1)</script>"}
Run Code Online (Sandbox Code Playgroud)
我是对的还是我错的?