upload-labs(Pass04)
2020-03-25 本文已影响0人
六亲不认的步伐
本次搭建upload-labs靶机进行File Upload测试
测试项目:Pass03[后缀名过滤之黑名单(2)]
测试介绍:此靶机主要练习 文件上传技能与代码审计技能
Pass04上传界面与源代码拿到题目后,第一步先依旧是代码进行审计
PHP代码审计根据图中2,3,4处 与Pass03 代码审计部分相同,不再进行详细解析
根据图中1处 发现相对于Pass03 对黑名单进行扩充,不再仅仅限于.php .asp .aspx .jsp
$deny_ext = array(".php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pht",".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");
方法1. 上传.htaccess文件
执行上传文件条件:
- 需要不仅仅上传文件的后缀名不在过滤的数组内。
- 同时对上传后的文件能够进行解析。
在Pass03关卡中主要利用了第一个条件,上传不在数组内的后缀名文件;所以对于比较全面的黑名单,可以从文件解析方面进行进一步着手。
在Pass03方法1中,由于自己尝试php3后未能成功解析,所以通过查阅资料,发现可以通过关键文件.htaccess
来进行解析控制。
在此之前需要了解几个关键的配置文件
httpd.conf:Apache配置文件
vhost.conf:Apache虚拟主机配置文件
.htaccess:分布式配置文件
.htaccess文件解析关键语法 AddType application/x-httpd-php .jpg
对于.htaccess文件创建在不同系统情况下,会遇到不同种情况,我将以Win 7 与Win 10举例
Win 7创建
若直接创建,会产生以下错误
键入文件名错误
对于Win7的必须要求文件名,可以通过命令行进行解决
成功使用命令行创建
通过对.htaccess配置文件输入内容
<FilesMatch "2.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
成功上传.htaccess文件
完成配置文件上传后,再次上传图片;
成功上传图片
完成图片上传后,进入上传目录,查看上传代码执行情况。
代码执行结果.png
.htaccess文件未成功应用排查过程
发现未成功将.jpg解析为.php执行。通过查阅资料,按照Apache下htaccess文件不起作用/rewrite 没有效果相关步骤进行。依旧未成功。
AccessFileName检查
重写模块引入
后记:目前.htaccess未成功执行原因依旧未解决,但是学习到了一些排查思路,希望大佬看到该篇文章,若知道原因可以回复解答下,在这就先谢谢大佬了。
第一篇:upload-labs(Pass01)
第二篇:upload-labs(Pass02)
第三篇:upload-labs(Pass03)