深信服EDR3.2.21 任意代码执行漏洞分析

漏洞原理

image-20200917154417360

dev_linkage_launch.php 为设备联动的新入口点主要是将联动的接口构造成业务统一处理的接口

主要调用

image-20200917154552300

跟进

image-20200917154605381

可以看到 第一个检查为  req_url=_SERVER['PHP_SELF'];

绕过第一个检查:

在他们系统nginx配置文件里面:

image-20200917154713639

通过nginx规则可以得知,他们没有设置禁止外网访问.从而可以直接访问

/api/edr/sangforinter/v2/xxx 绕过 第一个检查

第二检查**:** 权限检查

image-20200917155137057跟进check_access_token

img

这里if(md5_str==json_token["md5"]) 引发第二个漏洞: php弱类型导致的漏洞

绕过只需要传入一个base64编码的json内容为 {“md5”:true}即可

至此**权限检查绕过完毕**

来到 process_cssp.php 文件

image-20200917155330169

存在任意指令执行漏洞.作者试图使用escapeshellarg函数去给单引号打反斜杠实际上是毫无作用的.

绕过:{“params”:”w=123"‘1234123’"|命令”}

结果如下

image-20200917155504277

返回:

image-20200917155558597

Author

ol4three

Posted on

2020-09-17

Updated on

2021-03-03

Licensed under


Comments