微擎漏洞修复记录
程序员文章站
2022-05-09 11:15:08
...
昨天丢了一套2.0微擎系统上自己服务器做测试使用,今天在阿里云收到信息:
没有给阿里云交保护费,只能自己手动验证修复
1.微擎二次注入漏洞(ver1.*就存在的漏洞,让我怀疑我安装了个假的2.0)
sql语句查询前未作处理为sql注入漏洞的根源,同时多个sql语句拼接执行,使攻击者可以注入更长的代码。最后查询的变量用户可以控制,所以最终该漏洞可以实施攻击。
web/source/mc/fangroup.ctrl.php
搜索下面内容,60行左右:
$sql .= 'UPDATE ' . tablename('mc_mapping_fans') . " SET `groupid`='" . $tagids . "' WHERE `fanid`={$fans['fanid']};";
}
pdo_query($sql); }
修改为:
$sql = 'UPDATE ' . tablename('mc_mapping_fans') . " SET `groupid`= :tagids WHERE `fanid`=:fanid;";
pdo_query($sql,array(":tagids" => $tagids, ":fanid" => $fans['fanid']));
}
}
其他注入漏洞请看:
https://blog.csdn.net/where_in/article/details/94602549
2.微擎1.5.4任意用户删除漏洞
代码权限控制存在漏洞导致攻击者可任意删除用户。
web/source/founder/display.ctrl.php
找到 $founders = explode(',', $_W['config']['setting']['founder']);
在其后添加:
$identity = uni_permission($_W['uid']);
if ($identity != ACCOUNT_MANAGE_NAME_FOUNDER && $identity != ACCOUNT_MANAGE_NAME_VICE_FOUNDER) {
itoast('没有权限', referer(), 'error');
}