AI 助教问 AI 助教
东方瑞通 · CISP-PTE

文件上传绕过手法

文件上传绕过是针对方上传校验规则的多种手法,包括 MIME 伪造、黑名单绕过、截断、中间件解析等。

考点精讲

  1. 常见绕过:MIME 类型伪造(改 Content-Type 为 image/jpeg)、黑名单绕过(大小写 .Php、双写 .pphphp、其他后缀 phtml/php3 等)、截断(%00 截断、空格加点)、.htaccess 覆盖解析规则、图片马配合中间件解析漏洞。白名单只允许指定类型,安全性高于黑名单。

记忆技巧

绕过四件套:MIME 改、大小写、双写、%00 截断
白名单(只放行已知)比黑名单(只拦已知)更安全

常见误区

  • 以为黑名单能完全拦截——大小写/双写即可绕过
  • 忽略 MIME 类型伪造这一简单手法
  • 忽略图片马配合解析漏洞的利用方式

真题思路

  • 【示例】 上传校验使用黑名单、拦截了 .php,下列文件名最可能绕过该黑名单的是()
    shell.php shell.phtml shell.txt shell.jpg
    答案:B
    解析:黑名单只拦了 .php,phtml 是 PHP 可执行后缀,未被拦截时可能被服务器解析执行,B 最可能绕过。A 被拦;C、D 通常不可执行(除非配合解析漏洞)。

常见问题

Q:黑名单绕过的常见手法有哪些?

A:大小写绕过(.Php)、双写绕过(.pphphp)、使用其它可执行后缀(phtml、php3、php4、php5 等)等。

Q:%00 截断是什么?

A:利用空字节 %00 截断文件名,使服务器在校验时看到合法后缀、保存时把 %00 之后的内容截掉,从而写入脚本文件(受版本与配置影响,现代版本多已修复)。

Q:为什么白名单比黑名单更安全?

A:黑名单只拦已知的危险类型,攻击者可通过大小写、双写、其它后缀等绕过;白名单只放行已知的安全类型,未在名单内的一律拒绝,更难绕过,因此更安全。

Q:.htaccess 在绕过中怎么用?

A:.htaccess 是 Apache 的配置文件,攻击者上传自定义的 .htaccess 覆盖解析规则,如让某类文件(如图片)被当作 PHP 执行,从而配合图片马 getshell。

相关知识

教材出处:第4章 Web 漏洞 文件上传绕过手法

AI 助教

让 AI 助教带你深入学习,把你卡住的地方直接问它

随时为您答疑解惑

开始答疑