齐治运维堡垒机后台存在命令执行漏洞(CNVD-2019-17294)分析
- 基本信息
引用:https://www.cnvd.org.cn/flaw/show/CNVD-2019-17294
补丁信息:该漏洞的修复补丁已于2019年6月25日发布。如果客户尚未修复该补丁,可联系齐治科技的技术支持人员获得具体帮助。
- 漏洞复现
如下图,通过在传递参数”service=`id`”,成功执行命令,并回显命令执行结果。

- 源代码分析
首先,定位到/audit/data_provider.php,直接查找$_GET[‘service’]或者$_REQUEST[‘service’]都找不到。原来在文件开头包含的common.php中,已有全局配置。
代码如下,不但给变量加了个前缀”req_”,还过滤掉了一些危险字符。

然后,搜索” $req_service”定位到data_provider.php文件的第99行。可见,将$GET[‘service’]赋值到$service变量中。

然后,跟进$service来到data_provider.php文件的第124行。可见,通过字符串拼接,将$_GET[‘service’]带入到$cmd变量中。

然后,跟进$cmd来到data_provider.php文件的第133行。可见,$cmd被带入exec函数中执行。至此,造成远程命令执行漏洞。

- 漏洞利用
通过反单引号执行命令,写入PHP一句话代码到服务器。
原理如下图所示,这样就可以绕过过滤执行任意命令。实际上,还需要用${IFS}替换掉空格才行。

所以,最终方案如下。

- 引用
https://www.php.net/manual/en/function.exec.php
https://www.anquanke.com/post/id/84920
齐治运维堡垒机后台存在命令执行漏洞(CNVD-2019-17294)分析的更多相关文章
- 齐治堡垒机前台远程命令执行漏洞(CNVD-2019-20835)分析
一.基本信息 漏洞公告:https://www.cnvd.org.cn/flaw/show/1632201 补丁信息:该漏洞的修复补丁已发布,如果客户尚未修复该补丁,可联系齐治科技的技术支持人员获得具 ...
- 齐治堡垒机ShtermClient-2.1.1命令执行漏洞(CNVD-2019-09593)分析
一.基本信息 参考:https://www.cnvd.org.cn/flaw/show/1559039 补丁信息:该漏洞的修复补丁已于2019年4月1日发布.如果客户尚未修复该补丁,可联系齐治科技的技 ...
- 运维堡垒机----Gateone
简介: 运维堡垒机的理念起源于跳板机.2000年左右,高端行业用户为了对运维人员的远程登录进行集中管理,会在机房里部署跳板机.跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上, ...
- 一次运维-堡垒机多次跳转导出及导入mysql数据库
1. 场景描述 记录一次运维,朋友公司要从线上环境同步数据到测试环境,因为公司监管问题,导致数据无法从线上获取,需要通过vpn,堡垒机,3次跳转到目标主机,通过命令导出mysql数据文件,然后再将数据 ...
- 运维堡垒机(跳板机)系统 python
相信各位对堡垒机(跳板机)不陌生,为了保证服务器安全,前面加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有 身份认证,授权,访问控制,审计等功能,笔者用Python基本实现了上述功能. A ...
- 提高Linux运维效率的30个命令行常用快捷键
提高Linux运维效率的30个命令行常用快捷键 表4-1 30个常用快捷键 快捷键 功能说明 最有用快捷键 tab 命令或路径等的补全键,Linux最有用快捷键* 移动光标快捷键 Ctrl+a 光标 ...
- Linux运维常用的几个命令介绍【转】
Linux运维常用的几个命令介绍 1. 查看系统内核版本 [root@funsion geekxa]# cat /etc/issue CentOS release 6.5 (Final) Kerne ...
- 运维程序】简单的命令控制器(支持定时命令执行、重复定时任务命令和进程管理,开发这个小程序主要是为了方便管理服务进程)【个人github项目】
一.前言: command-controller 一个运维程序,简单的命令控制器(支持定时命令执行和重复定时命令,开发这个程序主要是为了方便管理服务进程) 本来是要用python做的,但是之前做ffm ...
- 【运维程序】简单的命令控制器(支持定时命令执行、重复定时任务命令和进程管理,开发这个小程序主要是为了方便管理服务进程)【个人github项目】
一.前言: command-controller 一个运维程序,简单的命令控制器(支持定时命令执行和重复定时命令,开发这个程序主要是为了方便管理服务进程) 本来是要用python做的,但是之前做ffm ...
随机推荐
- C语言反汇编入门实例
看<天书夜读>第一章,感觉很亲切,于是自己动手操起VS,建立一个默认的Win32 Console Application,在一个空空的main函数里面F9下一个断点之后,按下F5进入调试, ...
- 微信小程序把玩(一)Hello WeApp
原文:微信小程序把玩(一)Hello WeApp 本篇默认已经成功安装微信小程序工具 新建项目 AppID查看公众开发平台设置查看(https://mp.weixin.qq.com) 项目名称随意填写 ...
- Reverse Engineering Custom DataTypes -> GUID() in SQL Server to PostgreSQL
原文 https://archive.sap.com/discussions/thread/3641585 First you reverse engineer from a script where ...
- Android零基础入门第19节:Button使用详解
原文:Android零基础入门第19节:Button使用详解 Button(按钮)是Android开发中使用非常频繁的组件,主要是在UI界面上生成一个按钮,该按钮可以供用户单击,当用户单击按钮时,按钮 ...
- java的static类(静态内部类)(转载)
转载自:http://www.jb51.net/article/74838.htm java中的类可以是static吗?答案是可以.在java中我们可以有静态实例变量.静态方法.静态块.类也可以是静态 ...
- 【Qt】无边框窗体中带有ActiveX组件时的一个BUG
无意中发现的一个BUG,Qt5.1.1正式版首先创建一个GUI工程,拖入一个QAxWidget控件(为了使ActiveX生效,需要在.pro文件中加入CONFIG += qaxcontainer)接着 ...
- Qt Resource系统概说(资源压缩不压缩都可以)
什么是Qt Resource系统?简单的说,就是在可执行程序中存储binary文件,而且还是与平台无关的. 与Qt Resource系统密切相关的有三个法宝,分别是qmake.rcc.QFile. q ...
- ASP.NET MVC3在Visual Studio 2010中的变化
在VS2010中新建一个MVC3项目可以看出与以往的MVC2发生了很明显的变化 1.ASP.NET MVC3必要的运行环境为.NET 4.0 (想在3.5用MVC3,没门!) 2.默认MVC3模板项目 ...
- 30443数据查询语言DQL
5.4 SQL的数据查询功能 数据查询是数据库最常用的功能.在关系数据库中,查询操作是由SELECT语句来完成.其语法格式如下: SELECT column_expression FROM table ...
- WebP 大战 JPEG,谁才是真正的王者?
目前在互联网上,图片流量仍占据较大的一部分.因此,在保证图片质量不变的情况下,节省流量带宽是大家一直需要去解决的问题.传统的图片格式,如 JPEG,PNG,GIF 等格式图片已经没有太多的优化空间.因 ...