当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(7) 关注此漏洞

缺陷编号: WooYun-2014-55026

漏洞标题: Destoon Sql注入漏洞2(有条件)

相关厂商: DESTOON

漏洞作者: ′雨。认证白帽子

提交时间: 2014-03-30 15:39

公开时间: 2014-06-28 15:39

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: 无

0人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-03-30: 细节已通知厂商并且等待厂商处理中
2014-04-01: 厂商已经确认,细节仅向厂商公开
2014-04-04: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-05-26: 细节向核心白帽子及相关领域专家公开
2014-06-05: 细节向普通白帽子公开
2014-06-15: 细节向实习白帽子公开
2014-06-28: 细节向公众公开

简要描述:

过滤不严。

详细说明:

上次是alipay 这次来个paypal的。 当然 tenpay也有这洞



paypal 和 tenpay的一起说了。



api\pay\paypal\notify.php中

code 区域
require '../../../common.inc.php';
$_POST = $_DPOST;
if(!$_POST) exit('fail');
$bank = 'paypal';
$PAY = cache_read('pay.php');
if(!$PAY[$bank]['enable']) exit('fail'); //得开启这种支付方式。
if(!$PAY[$bank]['partnerid']) exit('fail');



code 区域
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
$charge_status = 0;
$sql="SELECT * FROM {$DT_PRE}finance_charge WHERE itemid='$item_number' AND status=0";

$r = $db->get_one("SELECT * FROM {$DT_PRE}finance_charge WHERE itemid='$item_number' AND status=0");





paypal无过滤。 连验证都没验证。

直接注入



————————————————————————————————————————



tenpay



code 区域
if($resHandler->isTenpaySign()) {

//通知id
$notify_id = $resHandler->getParameter("notify_id");


//通过通知ID查询,确保通知来至财付通
//创建查询请求
$queryReq = new RequestHandler();
$queryReq->init();
$queryReq->setKey($key);
$queryReq->setGateUrl("https://**.**.**.**/gateway/simpleverifynotifyid.xml");
$queryReq->setParameter("partner", $partner);
$queryReq->setParameter("notify_id", $notify_id);

//通信对象





tenpay里面多了个验证 不过可以轻松通过。、

code 区域
$transaction_id = $resHandler->getParameter("transaction_id");
//金额,以分为单位
$total_fee = $resHandler->getParameter("total_fee");
//如果有使用折扣券,discount有值,total_fee+discount=原请求的total_fee
$discount = $resHandler->getParameter("discount");

//------------------------------
//处理业务开始
//------------------------------

//处理数据库逻辑
//注意交易单不要重复处理
//注意判断返回金额

$total_fee = ($total_fee+$discount)/100;

$r = $db->get_one("SELECT * FROM {$DT_PRE}finance_charge WHERE itemid='$out_trade_no'");





然后带入查询。

漏洞证明:

d8.jpg





看看所执行的语句。



d9.jpg

修复方案:

过滤。

版权声明:转载请注明来源 ′雨。@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2014-04-01 08:10

厂商回复:

感谢反馈,我们会尽快修复

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2014-03-30 17:18 | 走火入魔 ( 路人 | Rank:18 漏洞数:2 | 多读书,多看报,少吃零食,多睡觉。)
    2

    这是在刷漏洞啊

  2. 2014-09-29 16:33 | D&G ( 普通白帽子 | Rank:566 漏洞数:113 | going)
    0

    这里不需要绕过全局的过滤么,

  3. 2014-09-29 17:32 | ′ 雨。 认证白帽子 ( 普通白帽子 | Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
    0

    @D&G 之前不用 没包含进来 现在不知道了。

  4. 2014-09-29 17:58 | D&G ( 普通白帽子 | Rank:566 漏洞数:113 | going)
    0

    恩恩。谢谢~

登录后才能发表评论,请先 登录