(CNVD-2019-17294)齐治堡垒机_后台命令执行漏洞

# (CNVD-2019-17294)齐治堡垒机 后台命令执行漏洞

======

一、漏洞简介
————

二、漏洞影响
————

三、复现过程
————

### 漏洞分析

首先,定位到/audit/data\_provider.php,直接查找\$\_GET\[‘service’\]或者\$\_REQUEST\[‘service’\]都找不到。原来在文件开头包含的common.php中,已有全局配置。

代码如下,不但给变量加了个前缀”req\_”,还过滤掉了一些危险字符。

![1.jpg](/static/qingy/(CNVD-2019-17294)齐治堡垒机_后台命令执行漏洞/img/rId25.jpg)

然后,搜索”
\$req\_service”定位到data\_provider.php文件的第99行。可见,将\$GET\[‘service’\]赋值到\$service变量中。

![2.jpg](/static/qingy/(CNVD-2019-17294)齐治堡垒机_后台命令执行漏洞/img/rId26.jpg)

然后,跟进\$service来到data\_provider.php文件的第124行。可见,通过字符串拼接,将\$\_GET\[‘service’\]带入到\$cmd变量中。

![3.jpg](/static/qingy/(CNVD-2019-17294)齐治堡垒机_后台命令执行漏洞/img/rId27.jpg)

然后,跟进\$cmd来到data\_provider.php文件的第133行。可见,\$cmd被带入exec函数中执行。至此,造成远程命令执行漏洞。

![4.jpg](/static/qingy/(CNVD-2019-17294)齐治堡垒机_后台命令执行漏洞/img/rId28.jpg)

漏洞复现
——–

如下图,通过在传递参数”service=`id`”,成功执行命令,并回显命令执行结果。

![5.png](/static/qingy/(CNVD-2019-17294)齐治堡垒机_后台命令执行漏洞/img/rId30.png)

通过反单引号执行命令,写入PHP一句话代码到服务器。

原理如下图所示,这样就可以绕过过滤执行任意命令。实际上,还需要用\${IFS}替换掉空格才行。

![6.jpg](/static/qingy/(CNVD-2019-17294)齐治堡垒机_后台命令执行漏洞/img/rId31.jpg)

所以,最终方案如下。

![7.jpg](/static/qingy/(CNVD-2019-17294)齐治堡垒机_后台命令执行漏洞/img/rId32.jpg)

参考链接
——–

> https://www.cnblogs.com/StudyCat/p/11197986.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容