一、简介
SpringData是一个用于简化数据库访问,并支持云服务的开源框架,SpringDataCommons是SpringData下所有子项目共享的基础框架。SpringDataCommons在2.0.5及以前版本中,存在一处SpEL表达式注入漏洞,攻击者可注入恶意SpEL表达式以执行任意命令,漏洞编号为CVE--。
该漏洞发生在属性自动绑定阶段,当用户在项目中利用了SpringData的相关Web特性对用户的输入参数进行自动匹配的时候,会将用户提交的Form表单的key值作为SpEL的执行内容,利用该特性,发送Payload将可能导致远程代码执行。
二、影响版本
SpringDataCommons1.13to1.13.10(IngallsSR10)
SpringDataREST2.6to2.6.10(IngallsSR10)
SpringDataCommons2.0to2.0.5(KaySR5)
SpringDataREST3.0to3.0.5(KaySR5)
Olderunsupportedversionsarealsoaffected
三、环境搭建
所使用SpringDataCommons测试版本为1.13.10
搭建效果如下图:
四、漏洞复现
1、网络安全学习路线2、电子书籍(白帽子)3、安全大厂内部视频4、份src文档5、常见安全面试题6、ctf大赛经典题目解析7、全套工具包8、应急响应笔记
以Post请求发送form表单(含key-value)
在key的名称中包含Payload
提交的key名字已在Controller中实现有getName()
在key后面补上一段SPEL代码片段。
example:name[T(java.lang.Runtime).getRuntime().exec("calc")]
漏洞复现效果,如下图所示:
五、漏洞原理
寻找漏洞代码段,定位到spring-data-
转载请注明:http://www.0431gb208.com/sjslczl/1297.html