漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2016-0167437
漏洞标题:驴妈妈旅游网商户系统存在多处设计缺陷漏洞
相关厂商:驴妈妈旅游网
漏洞作者: px1624
提交时间:2016-01-05 12:10
修复时间:2016-02-12 18:49
公开时间:2016-02-12 18:49
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:18
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2016-01-05: 细节已通知厂商并且等待厂商处理中
2016-01-05: 厂商已经确认,细节仅向厂商公开
2016-01-15: 细节向核心白帽子及相关领域专家公开
2016-01-25: 细节向普通白帽子公开
2016-02-04: 细节向实习白帽子公开
2016-02-12: 细节向公众公开
简要描述:
白帽子找出问题,应该详细的说明分析问题,并尽量提供靠谱的修补措施。这样厂商才能更好的修补漏洞,不然可能公开后反而会被轻易的恶意利用。厂商自己也要学会举一反三啊!
详细说明:
漏洞系统地址:http://fenxiao.lvmama.com/
1 首先是看了下面这2个漏洞报告后,才去看的。
http://wooyun.org/bugs/wooyun-2015-0149748
http://wooyun.org/bugs/wooyun-2015-0161249
2 发现了几个问题,首先,其中一个报告中提到的2个系统的帐号密码,还没有修改,这都一个多月了,漏洞都快公开了。
现在还是可以直接登录进去的。
3 然后我去试了试这2个报告中提到的登录位置的爆破问题,发现虽然做了修改,但是修的还是有问题。
先看看这哥们给的修补措施,如下图。
4 然后厂商也的确很重视,2次都给了20rank,然后也按照他说的措施修改了。
但是修改的结果就是,的确是每次验证码都会变一次,但是仅仅是前端的显示验证而已。服务器端的这个验证码还是可以无限次使用的。
所以也就是说,前面那2次报告提到的问题,根本就没有得到根本上的修补。
如下图,还可以根据length区分出哪些是存在的用户名。存在的返回length 350会提示 账户或者密码错误,不存在的会提示 帐号不存在或者账户或密码错误,这直接就可以很轻易的分辨出来了。
通过上面的方法爆破出来了一堆存在的帐号
然后每天5次限制,可以慢慢破,总是可以爆破出来弱口令的,这里前面的密码都没修,我也就不去破了。
5 继续说另一个问题。
发现这个系统的cookie设计是有问题的。每次登录,会Set-Cookie,但是同一个帐号每次的Set-Cookie都是一模一样的,所以这个cookie是永久有效不过期的,所以也就是说只要黑客登录了一次这个帐号,这个帐号就已经永久被劫持了。
6 然后继续说cookie的设计问题,不光是上面提到的不过期的情况,我登录了2个帐号,分别保存了cookie做了下对比。
发现cookie中很多的东西都是一样的,我们把它分行对比下。
帐号1:
dc4e01dbca1cd374ffb9068b31380fc2=Hb0l2XklSPjZXd0N2XklTP
MpZ1c39GaslTZw0mJ1N3cfRHdwlTZy0mJfd3YzVFdp9DZy0TNwAjMmcXdlNlcu9WYl1eP
pZ1cn9mc19Dcw0mJzl2XpR3c9ASMkZlYs9War5XPhNXYxMCNyZ2blx2XklTPmMXdlNlcp9DZ
帐号2:
dc4e01dbca1cd374ffb9068b31380fc2=Hb0l2XklSPjZXd0N2XklTP
MpZ1c39GaslTZw0mJ1N3cfRHdwlTZy0mJfd3YzVFdp9DZy0TNwAjMmcXdlNlcu9WYl1eP
pZ1cn9mc19Dcw0mJzl2XpR3c9ACMkZlYs9War5XPhNXYxMCNyZ2blx2XklTPmMXdlNlcp9DZ
7 如上显示,可以看到,cookie应该是一个组合的算法的加密,比如最前面的dc4e01dbca1cd374ffb9068b31380fc2 就是字符串saasinfo的32位md5加密的结果。
2个帐号cookie的大部分的内容都是一样的,只有3处是不一样的。
然后做了下控制变量后的测试,发现情况如下。
不一样的3处的功能:
第一处:这个比较重要,会直接影响页面的显示。
第二处:这里是用户名的显示位置,可以随便写。
第三处:这里是标题栏的显示位置,也可以随便写。
只要保证第一处通过校验,第二处和第三处位置都可以随便写,可以直接绕过验证登入。
比如第二处和第三处随便写,后台会显示如下情况,但是正常功能都可以操作。
8 基于以上的分析,我猜测这里的cookie主要是由6部分构成的,其中有3部分是不变的,用于验证用户的访问权限,另外3部分是变动的,不同的帐号对应的不一样的。
由于不知道这3出变动位置的字符串的加密算法,所以我们按照其位数随便写写试试能不能绕过验证。
登录,抓包,拦截,修改返回信息内容如下(ip位置我打马赛克了)。
三处变动位置分别用了1234567 xxxxxxxx 123456 去替换试试。
发现500了!
9 也就是如上面所说,这里会导致后台页面出问题,但是发现其他不登录没有权限的接口还是可以访问操作的额。
比如
产品的上下架情况
http://fenxiao.lvmama.com/home/prod_log.jsp?d=2015-12-30&s=0
http://fenxiao.lvmama.com/home/prod_log.jsp?d=2015-12-30&s=1
10 所以说,这里的cookie可以直接伪造进行登录,获取到登录权限做一些登录权限才可以访问和操作的接口。
漏洞证明:
如上分析。
修复方案:
1 登录位置的爆破问题,需要每次从服务器端新生成一个验证码,然后请求的时候和服务器端做对比,保证验证码一次性失效。然后返回信息尽量不要提示这种用户名错误,用户名不存在的这种东西,统一提示用户名或者密码错误,返回一样的length。
2 cookie的这个问题,改一下设计逻辑吧,起码要保证帐号退出,cookie就立即失效的这个情况。然后cookie的算法和验证这里也要做到不能被伪造绕过啊,最好从服务器端生成随机的hash,然后通过指定的算法去生成cookie。
版权声明:转载请注明来源 px1624@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2016-01-05 16:48
厂商回复:
thx
最新状态:
暂无