Web安全

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文件

执行上传文件条件:

  1. 需要不仅仅上传文件的后缀名不在过滤的数组内。
  2. 同时对上传后的文件能够进行解析。
    在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 没有效果相关步骤进行。依旧未成功。

AllowOverride配置检查
AccessFileName检查
重写模块引入

后记:目前.htaccess未成功执行原因依旧未解决,但是学习到了一些排查思路,希望大佬看到该篇文章,若知道原因可以回复解答下,在这就先谢谢大佬了。


第一篇:upload-labs(Pass01)
第二篇:upload-labs(Pass02)
第三篇:upload-labs(Pass03)

上一篇 下一篇

猜你喜欢

热点阅读