漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-063744
漏洞标题:DedeCMS-V5.7-UTF8-SP1 sql注入
相关厂商:Dedecms
漏洞作者: menmen519
提交时间:2014-06-06 17:31
修复时间:2014-09-04 17:32
公开时间:2014-09-04 17:32
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-06-06: 细节已通知厂商并且等待厂商处理中
2014-06-06: 厂商已经确认,细节仅向厂商公开
2014-06-09: 细节向第三方安全合作伙伴开放
2014-07-31: 细节向核心白帽子及相关领域专家公开
2014-08-10: 细节向普通白帽子公开
2014-08-20: 细节向实习白帽子公开
2014-09-04: 细节向公众公开
简要描述:
DedeCMS-V5.7-UTF8-SP1 代码审计sql注入
详细说明:
织梦在/include/payment/alipay.php(lines:125-161)
其中大家可以看到137行直接通过$_GET获取订单号: $order_sn = trim($_GET['out_trade_no']); 这里并没有做任何处理,但是奇怪的是上面有个require_once地方只要这里引入,就不会继续往下执行,只有两种可能性,要么是程序支付逻辑接口缺陷,要么就是需要其他外界条件,我们暂且注释掉这一行 //require_once DEDEDATA.'/payment/'.$code.'.php';
下来我们看文件/uploads/plus/carbuyaction.php(lines:334-337)
走到这里我们一下明白了整个支付逻辑,然后我们构造请求如下: url:http://localhost/DedeCMS-V5.7-UTF8-SP1/uploads/plus/carbuyaction.php post_data:dopost=return&code=alipay&out_trade_no=S-P0098RN0098' 后台监控到的sql语句为: SELECT * FROM dede_shops_orders WHERE oid = 'S-P0098RN0098'' LIMIT 0,1 看到此处大家都明白了,所以可能是自己没有办法去操作一整套支付流程,也可能是织梦支付接口缺陷导致 到这里位置,唯一可以肯定的就是,这一段代码肯定是有问题,而且是大问题,目前还在挖取,相关织梦已建站这一块
漏洞证明:
为了验证自己的猜想,我们上官方的演示站点:
http://v57.demo.dedecms.com/plus/carbuyaction.php
url:http://localhost/DedeCMS-V5.7-UTF8-SP1/uploads/plus/carbuyaction.php post_data:dopost=return&code=alipay&out_trade_no=M1T1RN1' or concat(char(@`'`),(SELECT user())))#
证实逻辑完全符合猜想:
修复方案:
过滤特殊字符
版权声明:转载请注明来源 menmen519@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:7
确认时间:2014-06-06 19:41
厂商回复:
已修复,感谢提交
最新状态:
暂无