JSONP劫持的发现过程是怎样的

JSONP劫持的发现过程是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

0x01 前言

记录一次JSONP劫持的发现过程和一些思考,和大家一起分享,一起进步

0x02 发现

通过爬取页面获取到可疑的url

xxx.xxx.xxx.com/recom?appkey=xxx&adspot=xxx&max_behot_time=0&max_count=5&tag=0&columns=0&callback=uarJsonCa

llback 看到了这里的callback函数

JSONP劫持的发现过程是怎样的

根据url的命名可以基本上推断出来这个服务应该是给目标站推送一些数据,其中主站获取到这些数据之后再回填到页面上,我们可以仔细的观察这个get请求的url

这里有appkey,adspot,max_behot_time,max_count,tag,columns还有callback这四个参数,其中最引人注目的就是callback参数后面拼接的方法,非常明显这里使用了JSONP函数

下面通过修改传参观察数据返回:

1.修改appkey的值,返回的数据有变动但是这个API应该主要用于推送热点数据,我在不传递这个值的时候也能获取到返回,这个值可能是无意义的

JSONP劫持的发现过程是怎样的

2.修改adspot的值,我获取到了一个错误返回

JSONP劫持的发现过程是怎样的

同时我根据这个值推测出不同的adspot的值对应着的是推送到不同的目标站点的数据,这个值是必传的且相当于key值

3.修改max_behot_time的值结果和修改appkey的值一样,可能同样代表着某种规则限定但是并不影响服务返回

4.修改max_count的值服务返回数据的数量会产生变化,当修改到一定数量上限的时候数据就不发生变化了,推测每天的热点数据应该是从数据池中取出来的,池子的大小是固定的所以这里体现出的就是数据不再变化

5.修改columns的值数据对应也会发生变化,推测其含义可能是分页页数

6.callback传参,这里很明显是使用了jsonp函数 通过页面上编写callback函数来调用对应的服务做数据填充

0x03验证

编写函数命名为callback之后的传参

JSONP劫持的发现过程是怎样的

获取到了对应的数据(这里只是为做演示获取到了数据的行数)

JSONP劫持的发现过程是怎样的

jsonp 本身不是漏洞,它仅仅是一种兼容性非常棒的跨域通信方式,那么是么时候会被认为是漏洞呢?当 jsonp 的返回数据为用户敏感数据,并且这个 jsonp 的检验不严格导致可以被外部利用,这时候就可以称之为 jsonp 敏感信息泄露漏洞。

看完上述内容,你们掌握JSONP劫持的发现过程是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/222687.html

(0)
上一篇 2022年1月6日
下一篇 2022年1月6日

相关推荐

发表回复

登录后才能评论