漏洞概要
关注数(24)
关注此漏洞
漏洞标题:yuncart SQL注入一枚(二次注入,附演示EXP)
提交时间:2014-10-02 09:50
修复时间:2014-12-31 09:52
公开时间:2014-12-31 09:52
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:未联系到厂商或者厂商积极忽略
Tags标签:
无
漏洞详情
披露状态:
2014-10-02: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-12-31: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
看这个程序主要是因为一个朋友,他觉得这玩意一定没有问题了。
虽然是小程序,不过感觉程序员已经相当注意安全了,差点就放弃了。
最后发现这个洞真是开心。
详细说明:
程序员对所有带入sql语句都包裹到了单引号中,底层model没有发现问题,全局过滤类似gpc,未发现整型没有intval。
但是最后发现了从数据库 -> 数据库的逻辑。发现了本次的问题。
在文件www\include\front\buy.class.php中
继续看变量$address,还是在这个文件中
添加地址的代码本身没有问题,直接添加最终的exp即可。
漏洞证明:
通过分析了几张相关的表的字符长度与回显是否,选择了
cart_trade表中tax_company字段作为回显
cart_user_address表中address字段作为输入
最终获取管理员密码的exp为:
y','','','','cod',1,(select concat_ws('|',uname,pass,salt) from cart_admin limit 1))-- 1
1、
2、随便选个一个商品,下订单,最后提交订单,在addressid字段选择我们提交exp的地址。
3、查看我们的订单,账号信息就躺在里面了。
修复方案:
漏洞回应