GetSimpleCMS Unauthenticated RCE漏洞分析

栏目: 编程工具 · 发布时间: 5年前

内容简介:GetSimple是一款基于XML的开源的内容管理系统。Getsimple cms的使用量较为广泛,从官方给出的统计数据来看,GetSimple拥有超过12万次的下载量在GetSimple 3.3.15版本中,攻击者可以通过伪造管理员cookie,绕过身份验证登陆后台,进而通过后台编辑模板功能模块写入php代码,造成远程代码执行漏洞。

0×00 前言

GetSimple是一款基于XML的开源的内容管理系统。Getsimple cms的使用量较为广泛,从官方给出的统计数据来看,GetSimple拥有超过12万次的下载量

GetSimpleCMS Unauthenticated RCE漏洞分析

0×01 漏洞描述

在GetSimple 3.3.15版本中,攻击者可以通过伪造管理员cookie,绕过身份验证登陆后台,进而通过后台编辑模板功能模块写入 php 代码,造成远程代码执行漏洞。

Metasploit针对此次漏洞,也推出相应的利用插件

GetSimpleCMS Unauthenticated RCE漏洞分析

详情可见packet storm链接:

https://packetstormsecurity.com/files/152961/GetSimpleCMS-3.3.15-Remote-Code-Execution.html

0×02 受影响的系统版本

GetSimple<=3.3.15

0×03 漏洞编号

CVE-2019-11231

0×04 漏洞分析

在分析该漏洞前,不得不提.htaccess文件,本次漏洞的产生,是因为默认情况下apache对.htaccess配置文件的开启情况不同而产生的。

htaccess文件是Apache服务器中的配置文件,它负责相关目录下的网页配置。通过配置htaccess文件,可以实现众多功能,例如:允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等。

启用.htaccess,需要在apache配置文件中,启用AllowOverride。

在笔者测试了两款环境,分别为配置了wamp的windows与ubuntu服务器,在这两个环境中,默认情况对htaccess文件的启用情况是不同的。

先来看安装有wamp的windows环境,打开apahce配置文件httpd.conf

GetSimpleCMS Unauthenticated RCE漏洞分析

可以看到,这里将位于conf/extra/httpd-vhosts.conf文件导入

跟进 httpd-vhosts.conf文件

GetSimpleCMS Unauthenticated RCE漏洞分析

可以看到,在这里,默认情况下 AllowOverride 默认值是All

当AllowOverride指令设置为 All时,所有具有”.htaccess”作用域的指令都允许出现在.htaccess文件中。

此时,目录中的.htaccess配置文件为启用状态

例如位于getsimplecms/data目录中的.htaccess配置文件

GetSimpleCMS Unauthenticated RCE漏洞分析

GetSimpleCMS Unauthenticated RCE漏洞分析

当此.htaccess配置文件被加载时,是禁止该目录被web端访问的

GetSimpleCMS Unauthenticated RCE漏洞分析

也就是说,通过该方法,通过web端访问data目录时,不会显示其中文件列表

与其中文件内容,是可以很好的保护存在于该目录下的文件,不被泄露

但是在笔者的ubuntu服务器,ubuntu apache2.conf中

GetSimpleCMS Unauthenticated RCE漏洞分析

AllowOverride 默认值是None,默认的情况下,不加载目录中的.htaccess

我们将上述的.htaccess文件放入ubuntu服务器的web目录中

GetSimpleCMS Unauthenticated RCE漏洞分析

再通过浏览器访问这个路径

GetSimpleCMS Unauthenticated RCE漏洞分析

如上图可见,.htaccess并没有生效,而路径中的文件,是可以被泄露的

回归到本次漏洞:

访问http://127.0.0.1/getsimplecms/data/users/admin.xml

GetSimpleCMS Unauthenticated RCE漏洞分析

在.htaccess没有生效的情况下,我们获取admin.xml中记录的用户相关信息,该cms并没有将用户信息写入数据库,而是全部存于该文件中

GetSimpleCMS Unauthenticated RCE漏洞分析

访问http://127.0.0.1/getsimplecms/data/other/authorization.xml获取authorization.xml中记录的apikey

现在我们得到如下的信息:(用户名/加密后的密码/apikey)

该cms并没有将用户信息写入数据库,而是全部存于xml文件中

通过获取的信息,接下来进一步分析如何利用这些泄露的信息:

Cookie 算法分析:

分析下GetSimple中的cookie是如何生成的

位于\GetSimpleCMS\admin\inc\cookie_functions.php

create_cookie方法

GetSimpleCMS Unauthenticated RCE漏洞分析

计算cookie所需的$USR $SALT 对应如下:

GetSimpleCMS\data\users\admin.xml文件

GetSimpleCMS Unauthenticated RCE漏洞分析

GetSimpleCMS Unauthenticated RCE漏洞分析

getsimplecms\data\other\authorization.xml

GetSimpleCMS Unauthenticated RCE漏洞分析

GetSimpleCMS Unauthenticated RCE漏洞分析

这些信息是可以直接读取出来的

getsimplecms 中Cookie的算法的实现如下:

GetSimpleCMS Unauthenticated RCE漏洞分析

算法相对简单,通过$SALT值与$USR进行拼接;$SALT值与$cookie_name拼接,最终通过sha1进行加密,算出对应的cookie键值对

通过泄露的文件与cookie算法,可以顺利计算出对应用户的cookie

现在,可以伪造任意成员的cookie了

以USR :admin举例说明:

最终拼接的cookie为:

GS_ADMIN_USERNAME=admin;48fd5258d478eec2a8f417f358c767c992f01b51=8ce411833fcfaedf4fcf5390132a153c00e0482c

Password 算法分析:

分析下Password的计算方式

GetSimpleCMS Unauthenticated RCE漏洞分析

Password的加密,是通过passhash()方法来实现的

GetSimpleCMS Unauthenticated RCE漏洞分析

GetSimpleCMS Unauthenticated RCE漏洞分析

GSLOGINSALT是用来保护的密码的额外的salt值,默认情况为空。

所以这里的密码计算就比较直接了,通过sha1方法对明文密码进行加密

sha1($p)

通过sha1 hash将明文密码加密为密文。

GetSimpleCMS Unauthenticated RCE漏洞分析

也就是说,只要获取了加密后的password,有一定几率,可以破解为明文:

GetSimpleCMS Unauthenticated RCE漏洞分析

获取到管理员cookie/password后,使用管理员账号登陆后台

通过伪造cookie访问后台:

未登录时,访问后台地址

GetSimpleCMS Unauthenticated RCE漏洞分析

GetSimpleCMS Unauthenticated RCE漏洞分析

此时需要填写正确的用户名密码才可以登陆后台

这里,通过改包的方式,将cookie修改为之前计算出的值

GetSimpleCMS Unauthenticated RCE漏洞分析

此时,无需登陆,直接进入后台

GetSimpleCMS Unauthenticated RCE漏洞分析

访问如下url

http://127.0.0.1/getsimplecms/admin/theme-edit.php

GetSimpleCMS Unauthenticated RCE漏洞分析

在这里可以对模板文件进行编辑,在这里可以写入任意php代码,造成远程代码执行漏洞

例如:

GetSimpleCMS Unauthenticated RCE漏洞分析

访问如下地址:

http://127.0.0.1/getsimplecms/theme/Innovation/template.php

GetSimpleCMS Unauthenticated RCE漏洞分析

插入的php代码被成功执行

0×05修复建议

目前官方没有进行修复,使用此cms的用户,需要确保apache配置文件中,AllowOverride值为All


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

凸优化

凸优化

Stephen Boyd、Lieven Vandenberghe / 王书宁、许鋆、黄晓霖 / 清华大学出版社 / 2013-1 / 99.00元

《信息技术和电气工程学科国际知名教材中译本系列:凸优化》内容非常丰富。理论部分由4章构成,不仅涵盖了凸优化的所有基本概念和主要结果,还详细介绍了几类基本的凸优化问题以及将特殊的优化问题表述为凸优化问题的变换方法,这些内容对灵活运用凸优化知识解决实际问题非常有用。应用部分由3章构成,分别介绍凸优化在解决逼近与拟合、统计估计和几何关系分析这三类实际问题中的应用。算法部分也由3章构成,依次介绍求解无约束......一起来看看 《凸优化》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具