freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

渗透笔记之JSONP劫持发现
g0niw 2021-05-07 22:15:53 264210

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函数

1620963116_609def2cd7954f7e63a9e.png!small?1620963119426

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

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

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

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

1620963177_609def69d926b5fb903be.png!small?1620963179748

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

1620963201_609def81762aac615bf18.png!small?1620963202989

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

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

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

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

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

0x03验证

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

1620442977_6095ff61b0137982d1fe3.png!small?1620442976564

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

1620394728_609542e8d0c2e53d53d42.png!small?1620394727753

0x04 后记

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

jsonp 敏感信息泄露漏洞。

技术在不断发展的同时,攻防的手段会变得更加的丰富,就像一场博弈,站在攻防两面的我们就是这场博弈的

参与者,那谁又会是最终的胜利者呢?

# 渗透测试 # web安全
本文为 g0niw 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
渗透笔记
g0niw LV.2
这家伙太懒了,还未填写个人描述!
  • 2 文章数
  • 0 关注者
渗透笔记之密码重置漏洞发现
2021-05-06
文章目录