好久沒搞站了,工作太忙,時間雖然有點,但始終沒有什么原創(chuàng)出來,還好90SEC能經常上來逛逛,上回變成實習的,真是嚇了一跳,
小朱訂單管理系統的一個注入漏洞預警
。經常搞購物站的人應該有遇到這么個訂單管理系統的,是個收費的系統。。。
漏洞出現在訂單處理頁面dorder.php。
代碼如下:
//設置工程相對路徑
$root_path="./";
require_once("$root_path/lib/config.php");
require_once("$root_path/data/dconfig.php");
if(isset($_POST['realname'])){
session_start();
$db=new MySql();
//登錄判斷
$pro_name=str_check($_POST['pro_name']);
$pay_type=str_check($_POST['pay_type']);
$realname=str_check($_POST['realname']);
$tel=str_check($_POST['tel']);
$tel2=str_check($_POST['tel2']);
$tmpadd=str_check($_POST['addess']);
$guest=str_check($_POST['guest']);
$addess=str_check($_POST['province3']).str_check($_POST['city3']).str_check($_POST['area3']).str_check($_POST['addess']);
$qq=str_check($_POST['qq']);
$post=str_check($_POST['post']);
$mun=intval($_POST['mun']);
$email=str_check($_POST['email']);
$pay_time=date("mdhis");
//來路
$referer = $_SERVER['HTTP_REFERER'];
if(empty($realname)){
showmessage_go("您的姓名!");
}else{
$ip=ip();
$sql = "INSERT INTO dindan (pro_name,pay_type,pay_time, realname,tel,tel2,addess,guest,ips,lastdate,qq,post,mun,email,shen) " .
"VALUES ('$pro_name','$pay_type','$pay_time','$realname','$tel','$tel2','$addess','$guest','$ip',now(),'$qq','$post','$mun','$email','$referer')";
$res = $GLOBALS['db']->query($sql);
$mailok=0;
if(file_exists("$root_path/data/dmailconfig.php")){
require_once("$root_path/data/dmailconfig.php");
}
if($mailok==1 && $smtpusermail && $smtpemailto){
//發(fā)送
require_once("$root_path/lib/email.class.php");
$mailbody .="
姓名:".$realname."
";
$mailbody .="
聯系電話:".$tel."
";
$mailbody .="
產品:".$pro_name."
";
$mailbody .="
地址:".$addess."
";
$mailtype = "HTML";//郵件格式(HTML/TXT),TXT為文本郵件
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//這里面的一個true是表示使用身份驗證,否則不使用身份驗證.
$smtp->debug = FALSE;//是否顯示發(fā)送的調試信息
$smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);
}
$msg="訂單提交成功,我們會盡快為您安排發(fā)貨,祝您購物愉快!";
echo "";
}
}
?>
漏洞很明顯,$ip處沒有過濾,產生注入,
電腦資料
《小朱訂單管理系統的一個注入漏洞預警》(http://www.oriental01.com)。$ip=ip();
$sql = "INSERT INTO dindan (pro_name,pay_type,pay_time, realname,tel,tel2,addess,guest,ips,lastdate,qq,post,mun,email,shen) " .
"VALUES ('$pro_name','$pay_type','$pay_time','$realname','$tel','$tel2','$addess','$guest','$ip',now(),'$qq','$post','$mun','$email','$referer')";
后臺拿shell也很簡單,可以直接插一句話的,在設置那兒有兩處可以直接插直接寫入文件。