记某次HVV:文件上传打入内网
字数 1343 2025-08-18 17:33:38
HVV攻防演练:文件上传漏洞打入内网技术分析
1. 漏洞背景与发现
在HVV(护网行动)攻防演练中,攻击方发现目标系统存在文件上传漏洞,通过精心构造的攻击链成功打入内网。该漏洞源于目标系统对用户上传文件过滤不严,导致攻击者能够上传恶意文件并执行。
2. 漏洞利用过程详解
2.1 初步信息收集
- 目标识别:通过前期信息收集发现目标系统存在文件上传功能
- 功能分析:确认上传接口为
/upload.php,接受多种文件类型 - 黑盒测试:尝试上传各类文件测试过滤机制
2.2 绕过文件上传限制
目标系统采用了以下防护措施但存在缺陷:
-
前端验证:
- 仅通过JavaScript验证文件扩展名
- 绕过方法:禁用JS或直接构造POST请求
-
MIME类型检查:
- 检查
Content-Type头 - 绕过方法:伪造合法MIME类型,如图片文件使用
image/jpeg
- 检查
-
文件内容检查:
- 简单的文件头检查
- 绕过方法:在恶意脚本前添加合法文件头(如GIF的
GIF89a)
-
扩展名黑名单:
- 禁止
.php,.asp等常见扩展 - 绕过方法:使用
.php5,.phtml,.phar等变种
- 禁止
2.3 上传WebShell
成功绕过后上传以下类型WebShell:
- 基础PHP Shell:
<?php @eval($_POST['cmd']); ?>
- 混淆Shell:
<?php $x="as"."sert"; $x($_REQUEST['cmd']); ?>
- 图片马:
- 将PHP代码附加到合法图片后,利用包含漏洞执行
2.4 权限提升与内网渗透
-
信息收集:
- 执行
phpinfo()获取服务器配置 - 查看
/etc/passwd等系统文件 - 检查当前用户权限
- 执行
-
提权操作:
- 利用系统漏洞或配置不当提权
- 如发现
sudo配置不当,可尝试sudo -l
-
内网扫描:
- 上传内网扫描工具如
nmap的静态编译版本 - 执行
ifconfig获取内网IP段 - 扫描常见服务端口(22, 80, 3306等)
- 上传内网扫描工具如
-
横向移动:
- 利用获取的数据库凭据尝试其他系统
- 通过SSH密钥或弱密码扩散
3. 防御措施
3.1 文件上传安全规范
-
白名单机制:
- 仅允许特定的文件扩展名
- 验证真实的文件类型(通过魔数检测)
-
存储安全:
- 上传文件存储在非Web目录
- 通过脚本间接访问上传文件
- 重命名上传文件(避免用户控制文件名)
-
权限控制:
- 上传目录禁用执行权限
- 设置严格的访问控制
-
内容检查:
- 对上传文件进行病毒扫描
- 检查文件内容是否包含恶意代码
3.2 服务器加固
-
最小权限原则:
- Web服务以低权限用户运行
- 禁用危险函数(如
exec,system)
-
日志监控:
- 记录所有上传操作
- 监控异常文件访问
-
WAF防护:
- 部署Web应用防火墙拦截恶意上传
- 配置规则检测WebShell特征
4. 应急响应建议
-
事件确认:
- 检查可疑上传文件
- 审查Web访问日志
-
隔离处理:
- 暂时禁用上传功能
- 隔离受影响服务器
-
漏洞修复:
- 实施上述防御措施
- 全面检查系统后门
-
后续监控:
- 加强日志分析
- 定期安全审计
5. 总结
文件上传漏洞是Web安全中最常见也最危险的问题之一,攻击者往往利用它作为进入内网的跳板。防御需要从多层面入手,包括严格的输入验证、安全的存储处理、服务器加固和持续监控。在HVV等攻防演练中,此类漏洞应作为重点检查对象。