浅谈JSON安全小知识
Posted 锋刃科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈JSON安全小知识相关的知识,希望对你有一定的参考价值。
0x00前言
JSONP(JSON with Padding)是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 html 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的javascript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。
0x01 安全问题-浅谈
Referer 无过滤,像i春秋修改了referer是完全没有去验证到的,这一种referer是完全可随意的修改的,还有另外的是过滤不严谨导致可以绕过,像图二中只需要在referer中带有 ichunqiu的字样即可绕过继续请求
Json的一些不安全的使用,
1. Content-type编码
2. Referer的过滤
3. 过滤callback及函数
4. 限制jsonp的callback输出的长度
0x02 json的攻击
以上简单的对json介绍,以及对json的不安全条件介绍,文章第三阶段也就是现在,来讲解json的攻击。
1. content-type-xss,现在比较少见的一种漏洞,它的出现原因是程序员没有严格的过callback,以及对content-type没有定义导致了该漏洞的产生
2. 某站的json返回数据中,herd头部里边的content-type 没有严格的定义成 application / json 这种方式是不安全的定义,在输出的callback中插入了XSS攻击代码可能将形成跨站攻击。
3.
4.
Hijacking
乌云上已有许多hijacking案例,其实都挺经典的,此次主要对一个案例的实操,就随意的简单明了,我做事风格,不喜欢扯太多其实也就是这一个漏洞而已,扯多了反而让读者难以记住。
找到了百度的api站点的接口,其实主要的是callback的回调函数,相信你肯定能懂这几窜小代码的原理,附上poc
<html>
<title>hijacking</title>
<body>
<script> function jQuery33109302702191451935_1522287999903(json){
alert(JSON.stringify(json))}</script>
<script >
</script>
</body>
</html>
本文已获得作者授权,转载请注明作者ID
以上是关于浅谈JSON安全小知识的主要内容,如果未能解决你的问题,请参考以下文章