### 简要描述:
相比于之前的文件包含,这个影响更严重吧
### 详细说明:
mcms后台dbbak.php,是对数据库进行备份处理的文件
304行,备份具体表:
```
$handle = fopen($dbkdir . $tablename . "_" . $pageid . ".sql.","wb");
fputs($handle, $bakupdata);
fclose($handle);
unset($bakupdata);
$selfurl = "dbbak.php?m=save&tableid=".$tableid."&startid=".($startid)."&pageid=".($pageid+1)."&table=$tables";
echo ('<script type="text/javascript">setTimeout(function(){window.location.href="' . $selfurl . '";},1000);</script>');
echo '<br />';
echo "正在备份数据表 <font color='red'>".$tablename."</font> 信息,当前已经写入第 ".($pageid+1)." 页,即将写入第 ".($pageid+2)." 页信息";
die();
```
我们可以看到,文件名直接是$dbkdir . $tablename . "_" . $pageid . ".sql
$pageid是分页,$tablename是表名,$dbdir是目录名。
如果数据库进行了备份,我们可以直接猜测到备份文件名称,然后进行下载。
### 漏洞证明:
装好系统后,我在后台进行一次备份。
然后来到backup目录:
[<img src="https://images.seebug.org/upload/201405/10155129698af02aab0fb969a397fef114b4bfdc.jpg" alt="02.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201405/10155129698af02aab0fb969a397fef114b4bfdc.jpg)
看到各个表的备份已经躺在那里了,文件名没有任何随机字符串
管理员密码就在mcms_admin_list_0.sql中:
[<img src="https://images.seebug.org/upload/201405/101552197f78c38d2d9ab94cc01cbb05570cd4c4.jpg" alt="03.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201405/101552197f78c38d2d9ab94cc01cbb05570cd4c4.jpg)
随便找了一个使用该系统的网站验证,可以下载数据库备份拉:
http://www.ydfsmj.com/backup/mcms_admin_list_0.sql
暂无评论