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

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

缺陷编号:wooyun-2013-017641

漏洞标题:51比购网问题打包

相关厂商:51比购网

漏洞作者: 小胖胖要减肥

提交时间:2013-07-08 22:07

修复时间:2013-08-22 22:07

公开时间:2013-08-22 22:07

漏洞类型:设计缺陷/逻辑错误

危害等级:中

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-07-08: 细节已通知厂商并且等待厂商处理中
2013-07-09: 厂商已经确认,细节仅向厂商公开
2013-07-19: 细节向核心白帽子及相关领域专家公开
2013-07-29: 细节向普通白帽子公开
2013-08-08: 细节向实习白帽子公开
2013-08-22: 细节向公众公开

简要描述:

51比购网问题打包,多个问题,包括设计缺陷,页面绕过等

详细说明:

1 找回密码处发送邮件地址和发送验证邮件2个地方对于发送邮件没有限制,可导致邮件炸弹,其实更严重的是对于不存在地址的恶意发送导致ddos邮件服务器
见邮箱截图

511.jpg


2 查看用户名是无法查看全名的,有带*,但是在一些页面却没有导致用户名屏蔽失效
包括动态转发处和查看动态处
如图

512.jpg


513.jpg

漏洞证明:

好了,个人觉得上面2个都是小问题,下面一个比较大的问题了
开始之前先说说对于请求这个东西
请求分post和get
一般使用form表单或者ajax提交,ajax优势在于异步,提高用户体验
那么get和post的区别是什么呢,get是只有url传递参数的,全部参数都在url比较不安全,
因为可以通过浏览器历史记录查看,post的url只是一个接口,参数在表单里面,如果是加密传输基本很难被破解,想比比get安全很多,所以现在网站大多使用post提交。
不过很多程序员会犯的一个错误是解析请求的时候,即使全部使用了post提交,但是解析的时候还是分解析方式的
get使用Request.QueryString,post使用Request.Form,而部分的话直接Request.Name
如果程序员没有区分解析方式就会导致post请求使用get也能触发
意思就是表单参数内容可以放在url中传递
这样还是很危险的,比如51比购正好会有这个问题,发表动态或者引用站外图片的地方
详细讲讲站外图片处,由于没有直接对<img>标签做处理
那么我们就直接使用

<img src="http://www.51bi.com/space/addusertrr.jhtml?userid=31824263">


<img src="http://www.51bi.com/space/submitShareAjax.jhtml?context=test&amp;albumId=&amp;prods=&amp;tags=">


可以进行刷关注(访问某某动态自动加关注)和自动发送动态的2个请求
虽然危害还不是特别高,但全站处理都是如此,不能保证没有高危的地方,
我也没有好好测试,那么具体看下效果截图吧
第一个自动加关注

514.jpg


第二个自动发送动态

515.jpg


修复方案:

1 限制验证码和找回邮件2个地方的邮件发送次数
2 屏蔽2处不该显示的用户全名,查看其他地方是否还有该问题
3 如果想好好解决这个问题就重新写一个请求类
要求为(1) 统一使用post请求
(2) 请求统一只解析form表单内容,不解析url内容
(3) referer判断(已做)
(4) 要更安全就再加一个token
差不多了,理论+实际,希望厂商重视,有的话给个小礼物

版权声明:转载请注明来源 小胖胖要减肥@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:4

确认时间:2013-07-09 09:29

厂商回复:

感谢反馈,部分小问题的确考虑不周全,已安排修复,希望能继续帮忙查漏,谢谢!

最新状态:

暂无