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 的过滤,我们可以使用

这里的点挖出来虽然只是一些中低危 但是像花费的时间也不长 实战价值还是可以的
如上面callback处的xss在商城论坛 反馈处发送xss的payload 打到一些用户或客服的cookie