Loading

JSONP

 

#0x00  

写在前面:
今天听表哥讲bypass CSRF 前面还顺风顺水的 but后面涉及到 JSONP 和 Cors 突然就大写的蒙蔽了
that上课没听懂怎么办????,当然要课下花时间去补!!!     那么let‘s go.

 

 

 

 

 

#0X01 JSONP

 

什么是JSONP?

 

JSONP 全称是 JSON with Padding ,是基于 JSON 格式的为解决跨域请求资源而产生的解决方案。

实现的基本原理:利用了 HTML 里 <script></script> 元素标签,远程调用 JSON 文件来实现数据传递。

 

JSONP  在调用时会用到   callback 函数 //     回调函数!!  (圈起来划重点)

 

 

 

 

跨域请求资源

刚才提到的jsonp是为了跨域请求资源而产生的,那么什么是跨域请求资源呢?   

这里不得不介绍一下另外一个新名词:同源策略       

同源策略

 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。

举个栗子

a.com下的js脚本采用ajax读取b.com里面的文件数据是会报错的

 

 

同源策略的几个关键点! 

同源是指:域名,协议,端口相同

现在所有支持 JavaScript  的浏览器都会使用这个策略

 

总结 : 非同源即跨域;     

      跨域的方式:jsonp,CORS

 

 

 

 

 

 

 

 


 

 

 

讲了半天终于进入主题了,what is jsonp 劫持?

 

JSONP劫持⭐

JSON 劫持又为“ JSON Hijacking ”       可归属于 CSRF 攻击范畴

 

1. 那么jsonp劫持可以用来干嘛呢??(目的)

-获取敏感数据。 

web应用会把一些敏感数据以json的形式返回到前端

 

2. jsonp劫持是怎样的一个过程呢??

首先让受害者以登陆的状态  点击  攻击者提前构造好的恶意的 JSONP 调用页面 👉   get到敏感信息

实际上就是一次CSRF,这里可以看成使用了JSONP劫持的CSRF

 

乌云案例: http://www.anquan.us/static/bugs/wooyun-2012-011284.html

 

3. JSON Hijacking 攻击代码

1
2
3
4
5
6
<script>
function wooyun(v){
    alert(v.username);
}
</script>
<script src="http://js.login.360.cn/?o=sso&m=info&func=wooyun"></script>

 

4.  bypass点   //或理解为如何防御

  • Referer 过滤  (正则)不严谨
  • 空 Referer
  • 随机 token

http://r.qzone.qq.com/cgi-bin/tfriend/friend_show_qqfriends.cgi?uin=[QQ号码]&g_tk=[随机token] 来输出 JSON

 

 

 

 

 

 

参考  :https://www.cnblogs.com/52php/p/5677775.html

    https://blog.csdn.net/yjclsx/article/details/80340901

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# 0x03  JSONP 和 CORS 比较

CORS 与 JSONP 的使用目的相同,但是比 JSONP 更强大。

 

JSONP 只支持        GET        请求,

CORS      支持    所有类型的 HTTP     请求。

 

JSONP 的优势在于支持老式浏览器,以及可以向不支持 CORS 的网站请求数据。

 

posted @ 2019-05-04 20:38  Unixcs  阅读(221)  评论(0编辑  收藏  举报