upload-labs

0X00 前言

        看到了一个总结上传漏洞的靶场感受不错,记录一下过程。项目地址 https://github.com/c0ny1/upload-labsphp

        当我搭建好环境,准备开始第一关时,小z看了我屏幕一眼说你这样很危险啊。我还没明白怎么回事,他看了下个人局域网IP地址,直接在他电脑上就能访问我搭建的项目。而后上传了一句话,用菜刀链接就能访问了。原来搭建环境时,apache默认开启了80端口,使得局域网内都能访问。在入站规则里添加一条禁止80端口访问便可。html

0X01 Pass-01

    前端绕过,可禁用js,也可抓包修改。前端

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上传写好的a.jpg抓包修改为a.php 绕过成功。git

0X02 Pass-02

    Content-Type绕过,可上传php文件抓包修改 Content-Type: image/jpeg 便可,或者利用Pass-01的方式也可绕过。github

0X03 Pass-03

    看源码是黑名单绕过,能够看下apache能解析php类型有哪些apache

能够看到能解析的有.php3 .phtml     尝试上传图片把后缀名改成php3 windows

根据返回的结果看到后缀名已经发生了改变,而后链接发现可以访问,绕过成功。app

0X04 Pass-04

    看源码发现也是黑名单并且比上一关要多不少后缀名,可是没有禁止上传.htaccess文件,这样就能够指定特殊文件名或者文件以特定的方式解析。post

<FilesMatch "abcde.*">
SetHandler application/x-httpd-php
</FilesMatch>

将上面写入.htaccess文件,凡是以abcde(能够随便改)开头命名的文件都以php解析,构造好一张图片命名为abcdef.jpg 。url

先上传.htaccess文件,再上传构造好的文件,不用抓包修改,直接链接就可访问。

0X05 Pass-05

    这一关看源码发现把.htaccess也加入了黑名单,可是发现比以前少了大小写绕过。删除了把文件名变成小写,可用大写绕过。

构造好图片命名为a.jpg,上传文件,抓包并把文件名改成a.PHP 上传成功后发现可以访问并链接。

0X06 Pass-06

    看源码依旧是黑名单处理,相比以前少了首尾去空处理,能够在后缀名后面加空格绕过,由于windows下会自动去除后缀名后面的点和空格。

根据返回结果上传成功。

0X07 Pass-07

    看源码发现没有作去处理后缀名后面的点,可利用后缀名加点绕过。

上传成功,且能链接访问。

0X08 Pass-08

    看源码发现少了去除::$DATA处理。php在Windows下文件名+::$DATA 会和后面的数据做为文件流处理,且不检测前面的后缀名。可利用这一特性绕过。

 返回的状态码是403,可是可以上传成功,且可以链接访问。

0X09 Pass-09

    看源码发现对后缀名的处理是先trim去空格再deldot去点,上传时路径拼接的是$file_name  故能够构造a.php. .(点空格点)绕过,处理后文件名变成a.php. 结合Windows特性变成了a.php

0X0A Pass-10

    看源码str_ireplace:替换字符串中的一些字符(不区分大小写)能够利用双拼绕过。

0X0B Pass-11

    这关开始用了白名单,看源码路径可控用%00截断。php版本要在小于5.3.4 。

0X0C Pass-12

    此次用post获取路径,不会像get那样自动url解码,在hex里改为00,也能够加%00而后右键url decode

0X0D Pass-13

待续

本站公众号
   欢迎关注本站公众号,获取更多信息