根据漏洞的url中包含%2e%2e/这种权限绕过的符号可以知道这其实是springboot引入的tomcat对路径参数解析特性造成的权限绕过;比如以下请求同样能够正确的执行命令,详细的分析可以看《tomcat路径解析特性》
在tomcat解析完路径之后的请求api路径就是/template/html/add,找到与其对应的Controller就是privapp.jar里面的com.qiyuesuo.api.TemplateHtmlController. addHtmlTemplate方法
在addHtmlTemplate方法中先判断请求的参数中是否包含file和title参数,这两个参数必须存在否则会抛出异常,限定了标题名称不能超过100字
接下来会有两个判断语句,走完这两个语句之后会先获取请求中的params参数
获取到params参数又逐个遍历,通过jackson反序列化params中的extensionParam参数,这个参数优惠对其进行正则匹配,正则匹配完了之后还会替换({})中的内容为1
完成上述操作之后则会进入
com.qiyuesuo.api.TemplateHtmlController#checkExpression方法中
这里面直接调用了new
ScriptEngineManager().engineManager.getEngineByName("javascript").eval(expression)方法
达到命令执行的效果
END
往期经典回顾
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,文章作者和本公众号不承担任何法律及连带责任,望周知!!! |
点赞是鼓励 在看是认同 分享是传递知识
看完点个“在看”分享给更多人
原文始发于微信公众号(杂七杂八聊安全):漏洞分析 | 契约锁命令执行漏洞分析(离别篇)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论