文件上传漏洞

admin 2025年2月14日08:52:44评论15 views字数 1040阅读3分28秒阅读模式
文件上传漏洞
无论是社交网站的头像上传,还是论坛的附件分享,只要存在代码设计缺陷,攻击者就能通过这个“入口”轻松控制你的服务器。

01
原理

文件上传漏洞的本质是开发者未对用户上传的文件进行充分的安全校验,导致攻击者可以上传恶意文件并执行。

02
花式绕过

前端校验绕过

  • 修改HTTP请求

黑名单绕过

黑名单机制:禁止上传指定扩展名(如.php,.jsp,.asp)。

绕过核心逻辑:找到“黑名单未覆盖”或“可被解析执行”的特殊扩展名

  • 冷门的扩展名,例如:.php也可以修改为php5, .phtml等。
  • 大小写混淆;
  • 双扩展名绕过;
  • 空字节截断(%00);
  • 空格/点号
  • :$DATA流(Windows NTFS特性)
  • 配合文件包含漏洞

白名单绕过

白名单机制:只允许指定扩展名(如.jpg, .png, .pdf)。

绕过核心逻辑:利用服务器特性或逻辑漏洞,使合法扩展名文件被执行。

  • 解析漏洞。
  • 内容欺骗攻击(例如:图片马)。
  • MIME类型伪装。
  • 前端渲染文件伪装。
03
防护措施

重命名文件

上传后强制重命名(如用UUID随机生成文件名),避免路径预测。

示例:a3f5b2c1.jpg → 攻击者无法直接定位恶意文件。

隔离存储

将上传文件存储在非Web目录,通过脚本代理访问(如PHP读取文件后输出)。

使用云存储服务(OSS),彻底分离服务器和文件资源。

禁用执行权限

配置服务器,禁止上传目录执行脚本。

内容安全检测

对图片/文档进行二次处理(如压缩、裁剪),破坏潜在的恶意代码。

使用杀毒引擎扫描文件(如ClamAV)。

白名单校验(核心!)

文件扩展名:仅允许业务必需的类型(如.jpg,.png)。

MIME类型:从服务端校验 Content-Type(如image/jpeg)。

文件头检测:通过文件中的字节判断真实类型(如PNG文件头为 ‰PNG)。

总结

  • 不信任任何上传的文件。
  • 层层校验,纵深防御(扩展名 + MIME + 文件头 + 内容扫描)。
  • 最小化权限(存储隔离 + 禁用执行)。
04
真实案例

案例1:某电商平台头像上传漏洞

攻击者上传包含Webshell的图片文件,获取服务器权限后盗取数百万用户数据,最终平台因违反GDPR被罚款200万欧元。

案例2:高校教务系统漏洞

学生上传伪造的 .docx 文件(实际为恶意脚本),绕过检测后篡改考试成绩,导致系统停运3天。

05
思考题

如果网站需要用户上传PDF文件,如何设计一套完整的安全方案?

欢迎在评论区分享你的想法!

06
下期预告

《网安60秒丨命令注入:你的网站正在替黑客执行命令!》

原文始发于微信公众号(小白学安全):网安60秒丨文件上传漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月14日08:52:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   文件上传漏洞https://cn-sec.com/archives/3739050.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息