"emlog CMS代码审计:越权到后台getshell - 先知社区"

需积分: 0 0 下载量 177 浏览量 更新于2024-01-18 收藏 1.84MB PDF 举报
文章主要介绍了emlog CMS的代码审计过程中发现的一个越权访问后台并获取shell的漏洞。作者首先通过分析安装文件install.php发现了一系列漏洞,包括无验证功能、任意重装覆盖、表单不做过滤等问题,导致了config.php文件被写入恶意代码。接着作者对DEL_INSTALLER常量进行跟踪分析,发现其默认值为0,因此一般情况下可以任意重装。通过这些漏洞,攻击者可以越权访问后台,并通过shell获取对网站的控制权。 emlog CMS是一款常见的内容管理系统(CMS),它为用户提供了方便的博客管理和发布功能。然而,在使用该系统过程中,如果安装文件存在漏洞,那么攻击者就有可能利用这些漏洞来获取网站的控制权限。因此,对于emlog CMS进行代码审计是非常必要的。 在代码审计的过程中,作者首先关注的是安装文件install.php。通过对这个文件进行审计,作者发现了一系列漏洞。首先,该文件存在无验证功能,即没有任何验证措施来判断是否是合法用户进行安装操作。这就意味着任何人都可以通过访问install.php来进行安装操作,而不需要任何权限。 其次,该文件存在任意重装覆盖漏洞。在正常情况下,一般的安装脚本都会对已经存在的文件进行检测和备份,以免数据丢失。然而,在该安装脚本中,作者并没有找到对于已经存在的文件进行备份的代码逻辑。这就导致了在重新安装时,原有文件会被直接覆盖,从而导致数据丢失或者被恶意代码所替换。 另外,该文件在写入config.php文件时存在表单不做过滤的漏洞。在正常情况下,对于用户输入的内容应该进行合理的过滤和校验,以确保其安全性。然而,在这个安装脚本中,作者并没有对用户输入进行任何过滤和校验,而是直接将用户输入的内容写入到config.php文件中。这就容易导致用户可以注入恶意代码来获取对网站的控制权限。 通过对安装文件进行审计,作者发现了以上漏洞,并进一步对其中的一个漏洞进行了详细分析。该漏洞是指可以通过设置常量DEL_INSTALLER的值来触发安装文件的删除操作。作者通过分析代码发现,DEL_INSTALLER的默认值是0,也就是说,在默认情况下,是可以进行任意重装操作的。这给攻击者提供了一个非常方便的入口,可以利用该漏洞来越权访问后台,并通过shell获取对网站的控制权限。 综上所述,emlog CMS存在严重的代码审计问题。在使用该系统时,用户应该及时对其进行更新,以防止恶意攻击。同时,开发者也应该对其进行代码审计,修复其中的漏洞,并提高系统的安全性。只有这样,才能保证用户的数据和网站的安全。