来源:自学PHP网 时间:2015-04-15 15:00 作者: 阅读:次
[导读] 存储XSS 直接打后台。对电商网站比较容易中问题出现在用户充值页面,充值如果没有付款成功的话,后台查看充值记录位置调用的是act=check,此页面已经过滤但是如果充值了并且完成付...
存储XSS 直接打后台。对电商网站比较容易中 问题出现在用户充值页面,充值如果没有付款成功的话,后台查看充值记录位置调用的是act=check,此页面已经过滤
user.php 1424行 /* 变量初始化 */ $surplus = array( 'user_id' => $user_id, 'rec_id' => !empty($_POST['rec_id']) ? intval($_POST['rec_id']) : 0, 'process_type' => isset($_POST['surplus_type']) ? intval($_POST['surplus_type']) : 0, 'payment_id' => isset($_POST['payment_id']) ? intval($_POST['payment_id']) : 0, 'user_note' => isset($_POST['user_note']) ? trim($_POST['user_note']) : '', //没有进行过滤 'amount' => $amount ); 1484行 surplus['rec_id'] = insert_user_account($surplus, $amount);//直接带入insert_user_account()
359行 function insert_user_account($surplus, $amount) { $sql = 'INSERT INTO ' .$GLOBALS['ecs']->table('user_account'). ' (user_id, admin_user, amount, add_time, paid_time, admin_note, user_note, process_type, payment, is_paid)'. " VALUES ('$surplus[user_id]', '', '$amount', '".gmtime()."', 0, '', '$surplus[user_note]', '$surplus[process_type]', '$surplus[payment]', 0)"; $GLOBALS['db']->query($sql); return $GLOBALS['db']->insert_id(); } $surplus[user_note]直接插入到数据库了
include/lib_payment.php 225行 elseif ($pay_log['order_type'] == PAY_SURPLUS) { $sql = 'SELECT `id` FROM ' . $GLOBALS['ecs']->table('user_account') . " WHERE `id` = '$pay_log[order_id]' AND `is_paid` = 1 LIMIT 1"; //更新付款状态 $res_id=$GLOBALS['db']->getOne($sql); if(empty($res_id)) { /* 更新会员预付款的到款状态 */ $sql = 'UPDATE ' . $GLOBALS['ecs']->table('user_account') . " SET paid_time = '" .gmtime(). "', is_paid = 1" . " WHERE id = '$pay_log[order_id]' LIMIT 1"; $GLOBALS['db']->query($sql);
admin/user_account.php 103行 if ($_REQUEST['act'] == 'edit') { /* 取得余额信息 */ $user_account = $db->getRow("SELECT * FROM " .$ecs->table('user_account') . " WHERE id = '$id'");//没有过滤的 // 如果是负数,去掉前面的符号 $user_account['amount'] = str_replace('-', '', $user_account['amount']); /* 取得会员名称 */ $sql = "SELECT user_name FROM " .$ecs->table('users'). " WHERE user_id = '$user_account[user_id]'"; $user_name = $db->getOne($sql); }
第一步,前台会员中心 充值
修复方案:过滤 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com