emlog后台数据备份getshell

此漏洞适用版本<= 5.1.2

漏洞原理是通过在恢复数据库备份时插入恶意代码,以达到getshell的目的

首先登陆到博客后台,进入数据备份和恢复功能

点击开始备份,我们会在本地生成一个数据库文件

要getshell,我们可以在得到的数据库文件中插入生成恶意文件的代码,但是我们需要知道该站点在服务器中的绝对路径

经过审计发现在admin/index.php中存在如下代码

这样我们只需访问127.0.0.1/admin/index.php?action=phpinfo就可以触发phpinfo()函数进而得到绝对路径了

有了绝对路径我们就可以在数据库备份文件中插入如下代码

这里调用了mysql语句,在目录下生成yml.php的文件

把代码插入到数据备份中

再次进入emlog后台,利用数据恢复功能,将修改过的备份文件导入

我们看下admin录下是否存在yml.php文件

可以看到成功在admin目录下生成了可执行PHP文件,在实战中可将该文件变成一句话木马,进行下一步的操作