记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

CmsTop媒体版中某处sql注入漏洞

2015-08-15 15:35

可以直接修改 管理员密码。



问题出现在 uc.php接口中,没有正确的判断UC接口是否开启,而key又是默认的。

因为代码中自己关闭了GPC,所以会导致注入。

code 区域
$set= setting('member');

$set['uc_dbtablepre'] = '`'.$set['uc_dbname'].'`.'.$set['uc_dbtablepre'];

$set = array_change_key_case($set, CASE_UPPER);

foreach($set as $k => $v) {

if(preg_match('/^UC_/',$k)) define($k,$v);

}



//在数据库中查出配置数据。然后设置为常量。





code 区域
if(!defined('IN_UC')) { //好像并没有看到 设置 IN_UC常量的地方,所以条件成立





if(MAGIC_QUOTES_GPC) {

$get = _stripslashes($get); //如果开启了GPC了 那么就取消转义。

}



由于uc接口使用的是自己的数据库连接,我们随便找一个 function来调用即可

code 区域
function renameuser($get, $post) {

$uid = $get['uid'];

$usernameold = $get['oldusername'];

$usernamenew = $get['newusername'];

if(!API_RENAMEUSER) {

return API_RETURN_FORBIDDEN;

}



$this->db->query("UPDATE #table_member SET `username`='$usernamenew' WHERE userid='$uid'");

return API_RETURN_SUCCEED;

}



这是一个不错的点 ,可以更新任意账号的密码,也可以注入回显。(管理员在同表内)

还有synlogin函数可以登录任意账号。



这个cms用的大网站还是非常之多的。

案例 http://www.cmstop.com/case/

漏洞证明:

修复方案:

判断uc是否开启。

知识来源: www.wooyun.org/bugs/wooyun-2015-0113662

阅读:78462 | 评论:0 | 标签:注入 cms 漏洞

想收藏或者和大家分享这篇好文章→复制链接地址

“CmsTop媒体版中某处sql注入漏洞”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云