当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0100365

漏洞标题:联想某商城SQL INSERT注入

相关厂商:联想

漏洞作者: bey0nd

提交时间:2015-03-09 18:41

修复时间:2015-04-23 18:42

公开时间:2015-04-23 18:42

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-09: 细节已通知厂商并且等待厂商处理中
2015-03-10: 厂商已经确认,细节仅向厂商公开
2015-03-20: 细节向核心白帽子及相关领域专家公开
2015-03-30: 细节向普通白帽子公开
2015-04-09: 细节向实习白帽子公开
2015-04-23: 细节向公众公开

简要描述:

INSERT注入技巧~~

详细说明:

站点:http://club.lenovo.com.cn/
联想积分商城
get注入

http://club.lenovo.com.cn/idea/club/index.php?m=shop&c=index&f=collect&goods_id=78231246ce8711e381a446631c66a91e


其中goods_id可以注入,虽然编号是加密的,但是不影响注入哈~~
goods_id随便写个,测试下

1.png


看到insert操作。

sql:insert into c_goods_collect(user_id, goods_id,cdate) values('3002307','1231'','2015-03-09 18:02:07')


其中我们可控的只有goods_id,工具的话跑不出来。
但是我们可以构造一个多条插入的操作,例如

insert into c_goods_collect(user_id, goods_id,cdate) values('3002307','1231'','2015-03-09 18:02:07'),('3002307','1231'','2015-03-09 18:02:07')


这样的话可以插入两条记录,其中前面部分就可以控制了。

3.png


这样的话,插入的第一条可控、
列cdate就可以控制了,其中cdate是datetime类型。直接插入其他类型就会直接报错,就有了报错注入 。
如下

data.png


直接爆一下

all.png


具体数据就不整了吧。。
商城的...数据大大的

漏洞证明:

all.png


修复方案:

过滤

版权声明:转载请注明来源 bey0nd@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2015-03-10 09:43

厂商回复:

谢谢您对联想安全工作的支持,我们会尽快修复漏洞

最新状态:

暂无


漏洞评价:

评论

  1. 2015-04-24 12:25 | Aerfa21 ( 普通白帽子 | Rank:165 漏洞数:44 )

    利用goods_id参数构造出多条插入语句实在是巧妙呀,构造出的第一条语句可控,不过那为啥要选构造出的cdate不选goods_id进行注入呢?再返回去想想,为啥不直接使用goods_id进行报错注入?PS:很好奇goods_id是什么编码?

  2. 2015-04-24 13:51 | bey0nd ( 普通白帽子 | Rank:895 漏洞数:142 | 相忘于江湖,不如相濡以沫)

    @Aerfa21 选cdate是为了让服务器报错,因为类型不符,为什么不选googs_id是因为他服务器没有回显。因为是插入操作,所有他的回显只是说执行结果,这个我是试过的。这个要分具体情况来看

  3. 2015-04-24 17:15 | Aerfa21 ( 普通白帽子 | Rank:165 漏洞数:44 )

    @bey0nd 看来手工之路巧妙、艰辛呀

  4. 2015-04-24 17:18 | bey0nd ( 普通白帽子 | Rank:895 漏洞数:142 | 相忘于江湖,不如相濡以沫)

    @Aerfa21 其实我也是半吊子。。工具老不好使,没办法