一个bsh任意代码执行

Springboot项目,看到目标使用了bsh.1.2b7
image
直接使用辅助工具查找bsh.Interpretereval方法
image
在一个工具类中发现一个执行代码的地方,往下查看,这个execJavascript方法由isElse方法调用
image
通过查找isElse方法,发现由一个Controller调用
image
因为传递的类型是 List<Map> list,所以参数格式是

1
[{"formulaContent":"","formulaCn":""}]

拼接url发送请求即可利用

1
[{"formulaContent":"exec(\"calc\")","formulaCn":"hi!woshishabi"}]

本地验证:
image
image


声明:
本文章用于学习交流,严禁用于非法操作,出现后果一切自行承担,阅读此文章表示你已同意本声明。

Disclaimer:
This article is for study and communication. It is strictly forbidden to use it for illegal operations. All consequences shall be borne by yourself. Reading this article means that you have agreed to this statement.