uploadlabs pass_logs

目录

pass1

pass2

pass3

Pass4

pass6

Pass7

Pass8(未过滤::$DATA文件流字符)

pass9

Pass10

pass14

Pass15


pass1

这是一个基于php语言写的靶场

php+apahce

写一个php探针文件名为1.php

 

 不看源码盲猜白名单过滤 

检查元素发现有个js进行前端验证,直接禁用js上传成功,访问上传的文件。

 url

 

pass2

上传失败,检查元素看不出什么就抓包看看

看到contentype 后端mime检查

直接改包,把原本的contenttype改为image/jpg 或者image/png image/gif

 发包

 上传成功

pass3

 判断出是黑名单过滤,但是未过滤到php3,php5 可以进行尝试,上传php3发现成功上传

此漏洞的前提是对方的apache的httpd.conf中的该项是开启的:

AddType application/x-httpd-php .php .phtml .php3 .php4 .php5

Pass4

该黑名单检测是不检测.htaccess的

.htaccess是什么:

全称是Hypertext Access(超文本入口) .htaccess文件也被成为分布式配置文件,提供了针对目录改变配置的方法,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。

上传一个.Htaccess文件,内容为:

      可以使得apache将jpg类型的图片解析为php脚本执行,上传该配置文件来实现图片作php脚本解析的前提条件是apache的cgi是handler而不是其他模式。默认情况都不是这个接口。

 

pass6

也是绕过黑名单的

提示如下:

This pass prohibit upload

.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 suffix file!

查看源代码:

$file_name = $_FILES['upload_file']['name'];

        $file_name = deldot($file_name);//Delete dot in name's latest place

        $file_ext = strrchr($file_name, '.');

        $file_ext = strtolower($file_ext); //Convert to lowercase

        $file_ext = str_ireplace('::$DATA', '', $file_ext);//Remove String::$DATA

少了个去除空格的函数

抓包改filename,加个空格绕过

 上传后可以正常访问,这里懒得丢成功的图了。。

Pass7

源码:

$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".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");

        $file_name = trim($_FILES['upload_file']['name']);

        $file_ext = strrchr($file_name, '.');

        $file_ext = strtolower($file_ext); //Convert To Small Letter

        $file_ext = str_ireplace('::$DATA', '', $file_ext);//Remove String::$DATA

        $file_ext = trim($file_ext); //Clean Up Empty 

未去除.(dot)

 

       可以在windows系统中测试一下,新建的文件名后缀有点的都和没有的一样解析,所以这边实现了绕过。

Pass8(未过滤::$DATA文件流字符)

 在数据包中文件名后缀加::$DATA后上传绕过,直接访问不行(forbidden),在url中把文件名后缀的::$DATA删掉就可以webshell

 

pass9

.htaccess被禁用了

如果apache是CGI/FastCGI版本的则可以尝试上传.user.ini配置文件

.user.ini是什么:

它比.htaccess用的更广,不管是nginx/apache/IIS,只要是以fastcgi运行的php都可以用这个方法。可以简单的把他看做是用户自定义的php.ini,除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。

想要达到在和user.ini一个目录下均可以在执行php脚本时候包含你写在user.ini里面配置的文件,只要内容如下:

auto_prepend_file="上传的webshell"

黑名单过滤,且不会修改上传后的文件名,不过滤.user.ini

上传一个1.gif的webshell探针

再上传内容为:auto_prepend_file=1.gif的.user.ini配置文件

此刻去访问1.gif没什么效果,去访问该目录下的readme.php即可达到效果

Pass10

查看源码发现

$file_name = trim($_FILES['upload_file']['name']);

        $file_name = str_ireplace($deny_ext,"", $file_name);

        $temp_file = $_FILES['upload_file']['tmp_name'];

        $img_path = UPLOAD_PATH.'/'.$file_name;      

这个  $file_name = str_ireplace($deny_ext,"", $file_name);

语句将匹配到的黑名单过滤称为空格,此刻双写后缀就可以了

pass14

文件上传搭配文件包含漏洞组合

此关有个文件上传漏洞因此可以进行此操作

首先准备一句话和一张图片进行合成图片马,再上传。

上传成功后点击该关的一个url,那是包含文件的地方

在url栏中添上http://192.168.227.165/uploadLabs-main/include.php?file=../uploadLabs-main/upload/6320220819182335.png

         这个图片名字被改了,要注意把他换成更改后的图片。最后用蚁剑连接即可

Pass15

检测图片大小,可以和14关一样绕过。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值