漏洞概要 关注数(24) 关注此漏洞
>
漏洞详情
披露状态:
2014-08-04: 细节已通知厂商并且等待厂商处理中
2014-08-09: 厂商已经确认,细节仅向厂商公开
2014-08-12: 细节向第三方安全合作伙伴开放
2014-10-03: 细节向核心白帽子及相关领域专家公开
2014-10-13: 细节向普通白帽子公开
2014-10-23: 细节向实习白帽子公开
2014-11-02: 细节向公众公开
简要描述:
一个比较有点危害不可以小看的问题。
详细说明:
由于官方的DEMO无法生产订单,只能本地搭建来测试了
首先来看一下关键的代码
function pay(){
$oid=$this->syArgs('id',1);
$pid=$this->syArgs('payment',1);
if($oid=='')message("请指定订单号");
if($pid=='')message("请选择支付平台");
$order=$this->c->find(array('id'=>$oid));
if(!$order)message("订单不存在或已被删除");
if($order['state']!=0){jump('?c=member&a=myorder&oid='.$order['id']);}
$subject='订单号:'.$order['orderid'];
这就是存在缺陷的核心代码,我就不多说了,相信大家都看的懂。
漏洞证明:
我是本地搭建的
首先可以注册两个账号
账号1:aizai2010
账号2:aizai2011
首先登陆账号1,下一订单
http://127.0.0.1:8888/index.php?c=pay&a=order&oid=103 后面的oid的参数是关键
登陆账号2,下一个订单
http://127.0.0.1:8888/index.php?c=pay&a=order&oid=104
然后最关键的一部,我们来吧账号2订单的oid参数改为103
看到没有已经成功查看到账号1的订单数据,而且登陆的账号还是账号2.
还有,我想说一下这个被忽略的漏洞
http://www.wooyun.org/bugs/wooyun-2014-070843/trace/e01b64512338155e41a488609a055d1a
虽然官方DEMO测试不成功,但是从官网上下载的源码搭建起来的环境切实存在该漏洞。
修复方案:
官方会修的
版权声明:转载请注明来源 贫道来自河北@乌云
>
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:11
确认时间:2014-08-09 09:42
厂商回复:
最新状态:
暂无