危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2308 浏览22662632

jsonp跨域漏洞挖掘小记录

关于jsonp: 

jsonp(JSON with Padding)是JSON的一种“使用模式”,为解决跨域请求资源而生,实现的基本原理是利用html里的script元素标签,调用json文件来实现数据传递

eg:我们访问 http://www.xxx.com/myinfo.aspx?jsonp=callbackFunction

我们希望得到的数据是

({"name":"Z9","Characteristic":"Handsome","mobile":"xxxxxx"})

那么真正返回到我们客户端的ScriptTags是这样的:

callbackFunction({"name":"Z9","Characteristic":"Handsome","mobile":"xxxxxx"})


安全问题一直是伴随着业务发展而出现的,同样,jsonp的出现也产生了一些问题,下面是我在挖洞过程中遇到的一些 


1.jsonp劫持

凡涉及到敏感信息的页面(有敏感数据的传递)都有可能存在此漏洞

这里我们以某src的商城的订单劫持为例:

我在浏览我自己的订单信息时,burpsuite抓到了一条链接:

https:/xxxxxxx/AjaxHandler/GetMemberInfo?callback=jQuery1765433455_15210889321&_=15210889321

jsonp劫持攻击代码:


当被攻击者在登陆该src网站的情况下访问了该网页 那么该用户的隐私数据(订单信息)就会被攻击者所劫持

登陆状态下访问:


2.callback无过滤导致的xss

这个问题的出现就是callback名无过滤 用户可自定义

还是上面的例子

我们在登陆状态下访问:

就会弹框框


挖掘时注意:

a.存在jsonp出现的场景还有很多 比如: jsonp传递cookie jsonp传递个人信息 jsonp传递订单信息等。 一切存在数据传输的地方都有可能存在!!!

b.有过滤:判断refer跟token

Referer 过滤(正则)不严谨:有的厂商过滤的时候只过滤了 Referer 里是否存在 host.com 这样的关键词

我们可以构造attack.html?host.com 来绕过

空 Referer绕过:过滤 Referer 来源时,忽视了一个空 Referer 的过滤,我们可以使用<iframe> 调用 javscript 伪协议来实现空 Referer 调用 JSON 文件:

这里的点挖出来虽然只是一些中低危 但是像花费的时间也不长 实战价值还是可以的

如上面callback处的xss在商城论坛 反馈处发送xss的payload 打到一些用户或客服的cookie