upload-labs

0X00 前言

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

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

0X01 Pass-01

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

0X02 Pass-02

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

0X03 Pass-03

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

可以看到能解析的有.php3 .phtml     尝试上传图片把后缀名改为php3 

根据返回的结果看到后缀名已经发生了改变,然后连接发现能够访问,绕过成功。

0X04 Pass-04

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

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

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

先上传.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

待续

 

posted @ 2019-06-17 17:32  你认识小哀吗  阅读(276)  评论(0编辑  收藏  举报