🆘 江湖救急 被 CVE-2022-22947 攻击了

2022-03-04 18:16:38 +08:00
 Hug125

spring-cloud-gateway 服务被攻击,启动加载路由配置的时候报错

GatewayRouteConf(filters=[{"args":{"name":"Result","value":"#{new java.lang.String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(\"bash -c {echo,d2hvYW1p}|{base64,-d}|{bash,-i}\").getInputStream()))}"},"name":"AddResponseHeader"}], predicates=[], order=null, uri=http://aaaa.aa, serviceId=ee, valid=1)
2022-03-04 17:30:16.725  INFO [rich-gateway,,,] 12586 --- [           main] ConditionEvaluationReportLoggingListener : 

重点是

exec(\"bash -c {echo,d2hvYW1p}|{base64,-d}|{bash,-i}\").getInputStream()))}"}

目前除了升级 gateway 版本有没有什么办法能把服务启动起来 生产环境已经挂了 2 个小时了

5715 次点击
所在节点    Java
23 条回复
ersic
2022-03-04 18:23:57 +08:00
pigx 官网看到的,不知道对你有没有帮助。
https://mp.weixin.qq.com/s/-XVH4QHyH74yshHA4YVeQw
ersic
2022-03-04 18:24:31 +08:00
@ersic 看最后的图
wolfie
2022-03-04 18:26:16 +08:00
endpoints.enabled=false
management.endpoint.gateway.enabled = false

试试
Hug125
2022-03-04 18:30:22 +08:00
@wolfie #3 这个尝试关掉了 没有效果
不过关掉能防另一个漏洞
Hug125
2022-03-04 18:31:09 +08:00
@ersic #1 感谢 我发给我们运维工程师看下
zliea
2022-03-04 18:36:41 +08:00
把 actuator 关了或者把 server port 个 management port 区分开,后者不暴露互联网
yibo2018
2022-03-04 18:38:30 +08:00
从报错信息是怎么看出来被 CVE-2022-22947 攻击了,求教
Hug125
2022-03-04 18:40:18 +08:00
@yibo2018 #7 是运维工程师判断的,综合了阿里云的报警吧
ZSeptember
2022-03-04 18:48:53 +08:00
太惨了
ZSeptember
2022-03-04 18:50:25 +08:00
加载路由的时候报错了,把被污染的路由配置删掉?
Hug125
2022-03-04 18:56:13 +08:00
@ZSeptember 路由配置是配置文件里写的,配置里没有这个命令
同样的包 在本机、测试环境都没事 在生产域名下的服务器都起不来
phithon
2022-03-04 18:58:09 +08:00
动态添加的路由理论上重启下 spring cloud gateway 服务就好了呀?
如果不能重启,可以手工删除掉这条路由:

1. 访问 http://ip/actuator/gateway/routes 找到你那条恶意的路由的 id ,就是 route_id 那个字段的值,比如 test
2. 向 http://ip/actuator/gateway/routes/test 发送 DELETE 请求,删除这条路由
3. 向 http://ip/actuator/gateway/refresh 发送 POST 请求,重新刷新路由

就好了。
这些处理完了以后,按照 3 楼的方法把 actuator 禁用掉,后面就填加不了新的了。
phithon
2022-03-04 19:03:39 +08:00
以我对这个漏洞的理解,这个配置应该是加载内存里的,但看你的描述是“启动不起来”,这我就不知道了。
Hug125
2022-03-04 19:11:15 +08:00
@phithon #12 现在 gateway 启动不起来,这个路径没法打开
phithon
2022-03-04 19:23:22 +08:00
@Hug125 我猜测启动不起来的原因不是这个漏洞,而是因为这个漏洞,你的服务器被控制了,你的文件或者代码被改了,或者被上木马了啥的
threedream
2022-03-04 19:31:35 +08:00
报警吧
Hug125
2022-03-04 19:48:18 +08:00
@phithon 是的 被人把东西写到 redis 里了,把 redis 清空了,现在起来了 用#1 的办法在 nginx 拦住了所有带 actuator 的请求
pengtdyd
2022-03-04 19:54:55 +08:00
不要用新版本,用老版本-----------稳定!!!!!------某些人的口头禅
wolfie
2022-03-04 20:55:03 +08:00
https://wya.pl/2021/12/20/bring-your-own-ssrf-the-gateway-actuator/

前两天中招,而且脚本很贴心的添加这个域名的转发规则,然后通过这个域名找到注入方式。
hengyunabc
2022-03-04 23:06:41 +08:00
spring boot 最好是把 endpoint 配置为单独的端口,不对外暴露。官方在 actuator 上总是各种打补丁,独立端口才是最优解。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/838031

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX