齐治运维堡垒机后台存在命令执行漏洞(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 ...
 
随机推荐
- 初探WINDOWS下IME编程
			
初探WINDOWS下IME编程作者:广东南海市昭信科技有限公司-李建国 大家知道,DELPHI许多控件有IME属性.这么好用的东西VC可没自带,怎么办呢?其实,可通过注册表,用API实现.下面说一下本 ...
 - 零元学Expression Blend 4 - Chapter 6 如何置入Photoshop档案以及入门动画设计
			
原文:零元学Expression Blend 4 - Chapter 6 如何置入Photoshop档案以及入门动画设计 本章将教大家如何把Photoshop档案置入Expression Blend ...
 - extjs grid 复选框选择事件
			
开发中需求是统计选择的行数,所以要监控checkbox的选择事件包括表头的全选事件 遇到的问题就不赘述了 方案是监控grid的复选框和行加载时绑定事件 baseView: DBEN.controls. ...
 - QML于C++交互之信号与槽(signal&slot )
			
connect c++ SIGNAL with QML SLOT 简介 QML 与 C++ 混合编程时,总结了一下qml和c++互相直接调用.及信号与槽连接 的几种情况,详细使用情况看示例代码 所有的 ...
 - MQTT-CN MQTT协议中文版
			
欢迎任何形式的转载,但请务必注明出处:http://www.cnblogs.com/liangjingyang 项目地址:https://github.com/liangjingyang/MQTT-C ...
 - Windows开机自启动位置
			
HKCU refers to HKEY_CURRENT_USERHKLM refers to HKEY_LOCAL_MACHINE HKCU\Software\Microsoft\Windows\Cu ...
 - MySQL InnoDB缓冲池(Buffer Pool)
			
InnoDB缓冲池并不仅仅缓存索引,它还会缓存行的数据.自适应哈希索引.插入缓冲(Insert Buffer).锁,以及其他内部数据结构. InnoDB还使用缓冲池来帮助延迟写入,这样就能合并多个写入 ...
 - MSYS2 环境搭建,并整合Qt
			
本机环境:Windows XP 32位MSYS2地址:http://sourceforge.net/projects/msys2/ 下载32位版本,地址:http://sourceforge.net/ ...
 - VC6下 try catch 在release下的杯具(默认情况下,要加上throw语句catch才不会被优化掉)
			
IDE:VC6 今天遇到一个小问题,把我郁闷了好久,××医生的VulEngine不时在wcsstr处发生crash,加了一番强大的参数检查后,再加上了强大的try catch,其实不是很喜欢用try和 ...
 - 什么是T1与E1线路
			
Leased Line 租用线路 租用线路是电信公司为某一机构建造的永久性通信电路.租用线路旁路了本地交换电信局(LEC)上的交换设备,所以在每次数据传输之前无需起始阶段,它们总是连通的.如果线路是长 ...