描述
Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。
为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP )呢?这是因为同源策略。
同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略。
传入callback 值会在结果里面直接返回。因此,如果该参数过滤不严格。可以随便输入:callback值为:alert(‘1’);parseResponse 字符串。返回结果会打印个alert窗口,然后也会正常执行。
实际上就是由于服务器端对JSONP 的请求来源的检查不严格导致的;
攻击者模拟用户向有漏洞的服务器发送JSONP请求,然后就获取到了用户的某些信息,再将这些信息发送到攻击者可控的服务器
原理
JSONP的最基本的原理是:动态添加一个
过程
首先,找到存在该漏洞地址:
修改请求包信息,在返回值开头中可见calmness;
传过去的calmness就是函数名,服务端返回的是一个函数调用,可以理解为:evil就是一个函数,(["customername1","customername2"])就是函数参数,网站前端只需要再编写代码处理函数返回的值即可。
继续:
如果我们修改jsoncallback的值为其他值,此处的返回值也会相应改变。我们可以劫持jsoncallback参数,自己构造jsoncallback处理函数,受害者点击我们伪造的链接后,向jsonp接口发起请求,请求得到数据的处理方式由我们自己的jsoncallback处理函数处理,由此可以达到劫持目的
进行POC的编写或者进行淘金
当然,还有绕过token防护进行csrf攻击;Referer 头的绕过等等;
修复建议
json正确的http头输出尽量避免跨域的数据传输,对于同域的数据传输使用xmlhttp的方式作为数据获取的方式,依赖于javascript在浏览器域里的安全性保护数据。如果是跨域的数据传输,必须要对敏感的数据获取做权限认证。
全球数字货币市场总价值约为1万亿美元,比特币就占了7000多亿,以太币第二,还有...
区块链是一道打开新世界的大门,它仿佛让我们看到了一个透明、公平的世界,但是...
最近比特币涨势很猛。 昨天写了一篇文章,题目是《比特币突破1.67万美元了,通俗...
本文转载自微信公众号「java开源精...
12月22日,由中国信息通信研究院(以下简称中国信通院)、中国通信标准化协会、可...
据爱尔兰安全公司AdaptiveMobile Security的一份报告显示,由于缺乏传输层与应用...
笔者以前在做广告系统时发现对接的大多数平台的广告系统都是以token方式授权接口...
卡巴斯基的全球遥测系统在过去的一年中平均每天发现 36 万个新的恶意文件,这比...
1.也许似乎大概是,然而未必不见得。 2.一遍一遍的翻着列表,却发现其实并没有...
区块链的使用在世界范围内激增。但是,尽管该技术得到了众多拥护者的拥护,但技...