zoukankan      html  css  js  c++  java
  • 齐治堡垒机后台存在命令执行漏洞(CNVD201917294)分析

    • 基本信息

    引用: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

    转载请注明出处。

  • 相关阅读:
    jquery swipper插件的一些弊端
    linux ffmpeg 源码安装教程
    二叉树遍历(宽度优先)入门
    node安装教程
    Check the string CodeForces
    Minimize the error CodeForces
    sourcestress 问题解决方案
    C++ substr
    Java 读取Excel文件
    Stall Reservations
  • 原文地址:https://www.cnblogs.com/StudyCat/p/11197986.html
Copyright © 2011-2022 走看看