upload-labs靶场教学之Pass04-06
本文介绍了三种文件上传漏洞的绕过方法:1. 使用.htaccess文件绕过黑名单过滤(Pass04),通过修改服务器解析规则使普通文件被当作PHP执行;2. 利用大小写绕过(Pass05),将PHP后缀改为大写形式"PHP";3. 通过添加空格绕过(Pass06),在文件名后缀后添加空格。每种方法都配合Burp Suite抓包修改,最终成功上传一句话木马并用蚁剑连接。这些方法展
Pass04
第一步:查看提示与源码
进入第四关中,查看提示,并点击显示源码
提示中说到 禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf后缀文件!
说明该校验位于后端,且主要针对文件后缀,这里进行BP抓包

第二步:.htaccess文件绕过
这里查看源码可以发现,采用的是黑名单过滤,而且几乎所有的可解析的php后缀都被过滤,且其他基本绕过方式也都被限制
这里通过特殊的绕过方式,使用.htaccess文件绕过

1.基础知识
上传漏洞里 .htaccess 核心用法
- 自定义解析规则写入
.htaccess修改服务器解析,让jpg/png/txt等普通文件当成PHP执行,绕过文件后缀拦截。 - 修改可执行脚本后缀配置后使非 php 后缀文件被 Apache 解析执行代码,突破上传黑名单限制。
- 设置文件 MIME 类型伪造文件类型,绕过前端、后端 MIME 校验。
- 批量改写访问规则重写访问路径,隐藏后门地址,伪装正常文件。
- 配合文件包含漏洞搭配上传图片马,借助 htaccess 规则直接解析运行一句话木马。
实验原理:Apache 优先读取目录下.htaccess 配置,优先级高于全局配置,利用这点篡改解析规则,实现图片马免杀上传执行。
2.具体应用
通用任意后缀解析 PHP,在.htaccess文件中写入以下代码:
SetHandler application/x-httpd-php
然后将其上传,因为这里是黑名单绕过,所以,其他任何文件后缀都可以上传
成功上传该文件

第三步:上传任意后缀木马文件
选择文件,将之前制作好的一句话木马文件,修改后缀为txt文件或其他文件后缀,然后上传修改后缀的文件
注:一句话木马:<?php @eval($_POST['pass']); ?>

成功上传

在图片处右键选择 复制图片链接 如果不能使用的话,就点击 新标签中打开图片,然后复制该链接

如果上传后,未成功解析为php,则可以修改httpd.conf文件,将AllowOverride后改为All

第四步:蚁剑连接
使用蚁剑进行连接,这里测试,成功连接


Pass05
第一步:查看提示与源码
进入第五关中,查看提示,并点击显示源码
提示中说到 禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf|.htaccess后缀文件!
比上一关多了一个禁止.htaccess
说明该校验位于后端,且主要针对文件后缀,这里进行BP抓包
第二步:大小写绕过
这里查看源码可以发现,采用的是黑名单过滤,而且几乎所有的可解析的php后缀都被过滤,且其他基本绕过方式也都被限制
但是细细观察发现,未对PHP全大写后缀做过滤

第三步:BP抓包
开启BP,浏览器打开BP代理,开启拦截

选择文件,之前制作好的一句话木马文件
注:一句话木马:<?php @eval($_POST['pass']); ?>

成功抓包

修改后缀为PHP

成功上传

在图片处右键选择 复制图片链接 如果不能使用的话,就点击 新标签中打开图片,然后复制该链接

第四步:蚁剑连接
使用蚁剑进行连接,这里测试,成功连接


Pass06
第一步:查看提示与源码
进入第六关,点击提示和源码
发现提示中没有什么特殊的地方
我们关注一下源码

源码位置发现,这里相比较于之前的关卡,少了一个验证条件
$file_ext = trim($file_ext); //首尾去空
这意味着,可以在文件名后加上空格,因为在windows电脑上直接加空格,保存后,空格会消失
所以这里依旧使用BP抓包后修改文件名

第二步:BP抓包
打开BP,浏览器开启BP代理,BP开启拦截

选择之前的一句话木马,进行上传

成功抓包

修改数据包,文件名后缀后面直接加上一个空格

这里成功上传,右键复制该连接


第三步:蚁剑连接


openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)