漏洞概要 关注数(14) 关注此漏洞
缺陷编号: WooYun-2014-53198
漏洞标题: cmseasy绕过补丁SQL注入一枚
相关厂商: cmseasy
漏洞作者: ′雨。
提交时间: 2014-03-09 20:40
公开时间: 2014-06-07 20:41
漏洞类型: SQL注射漏洞
危害等级: 中
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 无
漏洞详情
披露状态:
2014-03-09: 细节已通知厂商并且等待厂商处理中
2014-03-09: 厂商已经确认,细节仅向厂商公开
2014-03-12: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-05-03: 细节向核心白帽子及相关领域专家公开
2014-05-13: 细节向普通白帽子公开
2014-05-23: 细节向实习白帽子公开
2014-06-07: 细节向公众公开
简要描述:
继续注入。
详细说明:
在lib\plugins\pay\alipay.php中。
上次提了这个文件的洞。
看了看官网发的补丁。
就是过滤了几个运算符。 但是因为语句是 where xxx。
一般的注入的话 需要where id=xxx 来注入 但是这里过滤了这些。 没想出什么办法突破。
但是在这文件 还有一个函数。
上次是看的changeorders 现在 反正我是没办法利用了。
那现在来看看check_money
可以看到是把order_sn 带入了getrow; 再继续
这里来把语句输出一下看看。
SELECT * FROM `cmseasy_p_orders` WHERE `id`='123aaaa'
被单引号了。 但是又全局转义 怎么办呢?
看 $order_sn = str_replace($_GET['subject'],'',$_GET['out_trade_no']);
$order_sn = trim($order_sn);
这里跟ecshop 那个洞挺像。
在这里 有一个replace 是xx把清空 但是这个xxx是我们可控的。
总所周知 %00 转义后会变成\0 然后%00' 就是\0\'
这里 如果我们把0清空 的话 就成了\\' 单引号成功出来。
测试测试。
漏洞证明:
修复方案:
继续过滤。
这次别忽略了。。
版权声明:转载请注明来源 ′雨。@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-03-09 20:43
厂商回复:
感谢,马上更新
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值