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

目录

0x01 漏洞复现

0x02 FOFA检索关键词

0x03 代码审计


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

0x01 漏洞复现

/ui/login.php?user=username

某信服EDR任意用户登陆漏洞分析_第1张图片

访问后可自动跳转进入

0x02 FOFA检索关键词

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

0x03 代码审计

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

参数user , 我们快速搜索定位一下

某信服EDR任意用户登陆漏洞分析_第2张图片

在这里发现此段代码出现了问题

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配置问题

你可能感兴趣的:(代码审计,安全,web)