目錄
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