某信服EDR任意用户登陆漏洞分析

影响范围: EDR  <= v3.2.19
漏洞描述:
终端检测响应平台EDR,围绕终端资产安全生命周期,通过预防、防御、检测、响应赋予终端更为细致的隔离策略、更为精准的查杀能力、更为持续的检测能力、更为快速的处置能力。在应对高级威胁的同时,通过云网端联动协同、威胁情报共享、多层级响应机制,帮助用户快速处置终端安全问题,构建轻量级、智能化、响应快的下一代终端安全系统。

0x01 漏洞复现

 


/ui/login.php?user=username

某信服EDR任意用户登陆漏洞分析

访问后可自动跳转进入

0x02 FOFA检索关键词


title="终端检测响应平台" &amp;&amp; country="CN"

0x03 代码审计

通过url确定文件为ui/login.php

参数user , 我们快速搜索定位一下
某信服EDR任意用户登陆漏洞分析
在这里发现此段代码出现了问题


if((isset($_SERVER["REMOTE_ADDR"]) && ("127.0.0.2" == $_SERVER["REMOTE_ADDR"] || "127.0.0.1" == $_SERVER["REMOTE_ADDR"]))
            || $docker)
        {
            //构造session
            if(isset($_GET["user"]))
            {
                $auth_value["auth_user"] = $_GET["user"];
            }
            elseif($docker)
            {
                $auth_value["auth_user"] = $username;
            }
            else
            {
                //$auth_value["auth_user"] = "SCLOUDE";
                //免密登录后,人为loginout,还是需要密码登录,url不一样
                return;
            }

在if判断中,首先判断了$_SERVER["REMOTE_ADDR"]是否存在且为127.0.0.2

然后判断了是否等于127.0.0.1 以及$docker

因为exp执行可跳转进入后台,这里判断为真

参考群内表哥的说话,可以理解为内网到内网的反代场景,

判断经过ngix反代,REMOTE_ADDR为127.0.0.1,因此为真

漏洞触发的原因可能为代理设置问题或是docker配置问题

1. 全库网所有资源均来源于用户上传和网络,如有侵权请发送邮箱联系站长处理!
2. 如果你有好的资源或者原创教程,可以到审核区投稿发布,分享会有钻石奖励和额外收入!
3. 全库网所有的源码、教程等其它资源均源于用户上传发布,如有疑问,可直接联系发布作者处理
4. 如有链接无法下载、失效或广告,请联系全库网管理员核实处理!
5. 通过发布原创教学视频或优质源码资源可以免费获得全库网站内SVIP会员噢
6.全库网管理猿邮箱地址:admin@qkuser.com,我们会在收到您的邮件后三个工作日内完成处理!
7. 如遇到加密压缩包,默认解压密码为"qkuser.com",如遇到无法解压的请联系管理员!

全库网 » 某信服EDR任意用户登陆漏洞分析