upload-labs通关

news2024/10/7 18:27:42

upload-labs通关

shell === 🍉


目录

  • upload-labs通关
    • PASS-01、PASS-02
    • PASS-03
    • PASS-04
    • PASS-05
    • PASS-06
    • PASS-07
    • PASS-08
    • PASS-09
    • PASS-10
    • PASS-11
    • PASS-12
    • PASS-13
    • PASS-14
    • PASS-15
    • PASS-16
    • PASS-17
    • PASS-18
    • PASS-19
    • PASS-20
    • PASS-21

shell能上传并能解析就算成功


PASS-01、PASS-02

图片马抓包改后缀就行

请添加图片描述

PASS-03

根据源码分析,直接上传PHP4、PHP5或phtml文件就行,只不过在Apache配置文件需要增加PHP4、PHP5能够解析成php的语句

PASS-04

过滤的很全,但没有过滤.htaccess和.user.ini,两者都能配合图片马可以来发组合拳
.htaccess文件:

SetHandler application/x-httpd-php

图片马:

GIF89a
auto_prepend_file=hack.jpg

PASS-05

上传.user.ini文件,配合图片马hack.jpg食用
.user.ini:

GIF89a
auto_prepend_file=hack.jpg

PASS-06

源码没有缺少将后缀名全改小写的函数,所有可以通过部分大写或全大写的形式改后缀,如Php、PHP
请添加图片描述

PASS-07

源码没有处理文件名末尾的空格,可以通过后缀加空格的方式绕过黑名单,貌似win和linux都行
请添加图片描述

PASS-08

源码没有处理文件名末尾的.号,可以通过后缀加.的方式绕过黑名单,只能在win上这么绕过

请添加图片描述

PASS-09

源码没有处理文件名末尾的:: D A T A 号 , 后 缀 名 后 加 上 : : DATA号,后缀名后加上:: DATA::DATA绕过

请添加图片描述

PASS-10

源码对某些字符只是过滤一次,可以根据代码的顺序来构造php后缀

请添加图片描述

PASS-11

转换黑名单上的字符串为空格,双写绕过,如pphphp
请添加图片描述

PASS-12

php 版本 < 5.3.4且php的参数magic_quotes_gpc必须关闭
payload:

/upload-labs/Pass-12/index.php?save_path=../upload/h.php%00

请添加图片描述

PASS-13

payload: ../upload/h.php+
并且把+的hex值有2d改为00
请添加图片描述

PASS-14

上传一张图片马,并获取图片地址,使用提供的文件包含漏洞解析,最后使用蚁剑连接
payload: http://192.168.1.28/upload-labs/include.php?file=upload/5020221205182144.jpg

请添加图片描述

请添加图片描述

PASS-15

同14

PASS-16

不知为何提交图片就不动了,跳了

PASS-17

对图片上传进行二次渲染
可以试着观察经过和未经过imagecreatefromjpeg函数的图片数据,把其中没有变化的数据替换换成一句话木马

PASS-18

条件竞争,记得先退杀毒软件,几次被失败被搞懵了
解析源码,会发现是先上传任意文件到指定文件夹,在判断是否合法,合法则保留,不合法则不保留(ulink函数),
所以可以利用php文件成功上传后还没被删除这个时间戳,直接访问这个php文件,达到执行任意php代码的目的
由于计算机处理文件速度一般比手速快,所以使用脚本的方式来访问

import requests
import time

url = "http://192.168.1.28/upload-labs/upload/make_shell_php.php"

while (1):
    res = requests.get(url)
    if res.status_code == 200:
        print("true")
        break
    else:
        print("false")

请添加图片描述
请添加图片描述

PASS-19

图片马配合文件包含

PASS-20

文件名是可以自定义的,但是要经过黑名单,后缀改.PHP或者.php/.都可以绕过,也可以使用00截断,但环境要允许

PASS-21

白名单+数组绕过

//检查文件名
$file = empty($_POST['save_name']) ? $_FILES['upload_file']['name'] : $_POST['save_name'];
if (!is_array($file)) {
    $file = explode('.', strtolower($file));
}

这里其实直接传一个数组进去,这样就可以绕过这个if执行的字符串转数组的过程
修改包信息
save_name[0] = upload-21.php
save_name[2] = jpg
相当于即传进去一个数组[‘upload-21.php’,‘’,‘jpg’]

$ext = end($file);
$allow_suffix = array('jpg','png','gif');
if (!in_array($ext, $allow_suffix)) {
    $msg = "禁止上传该后缀文件!";
}

这里会取数组末尾的元素去白名单里判断是否合法,所以数组末尾的元素必须是白名单里某个元素

$file_name = reset($file) . '.' . $file[count($file) - 1];
$temp_file = $_FILES['upload_file']['tmp_name'];
$img_path = UPLOAD_PATH . '/' .$file_name;
if (move_uploaded_file($temp_file, $img_path)) {
    $msg = "文件上传成功!";
    $is_upload = true;
} else {
    $msg = "文件上传失败!";
}

由于函数COUNT在计数时,将把数值型的数字计算进去;但是错误值、空值、逻辑值、文字则被忽略。
所以不会考虑这个空值,最后等于2,最后追加的是数组的第二位空值,从而绕过了jpg后缀
所以:

$file_name = reset($file) . '.' . $file[count($file) - 1] = 'upload-21.php' + '.' + '' = upload-21.php

最后在指定目录生成upload-21.php文件
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/66105.html

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

相关文章

最近要考pmp,哪个培训机构比较好?

你说的几个都是我着重了解过的&#xff0c;作为过来人&#xff0c;把我做的各大机构的优缺点给你参考吧~ PMP 机构排名的话&#xff0c;没有官方数据&#xff0c;网上数据仅供参考。这篇机构对比的文章&#xff0c;主流机构都有&#xff0c;你可以看看 下面说下我收集的每个机…

【数据库数据恢复】无法启动MongoDB服务的数据恢复案例

关于MongoDB数据库&#xff1a; MongoDB数据库存储方式是将文档存储在集合之中&#xff0c;而不是像Oracle、MySQL一样的关系型数据库。 MongoDB数据库是开源数据库&#xff0c;也提供具有附加功能的商业版本。 MongoDB中的数据是以键值对(key-value pairs)的形式显示的&…

[附源码]Python计算机毕业设计Django校友社交系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

“云办公”如何用任务协同工具搞定项目和团队管理?

导语&#xff1a;远程参加会议、团队协同作业、项目负责人进行任务分配、团队成员多人协同编辑文件及同时推进项目、人力部门在线进行审批报销……&#xff0c;随着“云办公”的加速普及&#xff0c;人们只需一台电脑、一部手机、一根网线&#xff0c;就能随时进入办公状态&…

云服务器及域名到期后,公安联网注销指南

云服务器及域名到期后&#xff0c;公安联网注销指南 公安联网备案及注销的操作流程都写在了官方文档中&#xff0c;可以进入全国互联网安全管理服务平台&#xff0c;在下载中心找到并下载 《互联网站安全服务平台操作指南》&#xff0c;按照操作指南进行备案及撤销。 以下图…

JS实现关闭图片窗口

JS实现关闭图片窗口 有趣的小案例池子&#xff1a; JS实现定时器 JS实现关闭图片窗口 JS实现输入检验 获取焦点后隐藏提示内容的输入框 JS实现获取鼠标在画布中的位置 聊天信息框显示消息 JS点击切换背景图 自动切换背景的登录页面 JS制作跟随鼠标移动的图片 JS实现记住用…

K8S Pod控制器详细讲解

文章目录一、Pod控制器介绍二、ReplicaSet(RS)三、Deployment(Deploy)1.镜像更新&#xff1a;2.版本回退3.金丝雀发布/灰度发布四、Horizontal Pod Autoscaler(HPA)五、DaemonSet(DS)六、Job七、CronJob(CJ)结尾一、Pod控制器介绍 Pod是kubernetes的最小管理单元&#xff0c;在…

ArcGIS矢量化并进行拓扑检查

土地利用数据每年都在发生变化&#xff0c;故每年都要根据去年的数据进行修改。请根据以下要求&#xff0c;修改A区域的数据并对B区域已做好的数据进行拓扑检查。 01 数据说明 1. 地类图斑A.shp&#xff1a;A区域需要编辑修改的图斑数据。 2. 影像.tif&#xff1a;编辑A区域…

Docker数据卷自定义Docker镜像

目录 宿主机与容器之间的文件拷贝 引言&#xff1a;利用MySQL镜像安装MySQL服务 从容器中拷贝文件到宿主机 从宿主机拷贝文件到容器 数据卷 数据卷容器 Dockerfile自定义镜像 自定义tomcat8&#xff08;熟悉几乎所有的Dockerfile命令&#xff09; 宿主机与容器之间的文…

集群配置步骤_java培训

配置步骤 复制3个ZooKeeper zookeeper-3.4.9.tar.gz解压后拷贝到/myzookeeper目录下并重新名为zk01&#xff0c;再复制zk01形成zk02、zk03&#xff0c;共计3份 新增目录 进入zk01/02/03分别新建文件夹&#xff0c;mydata、mylog 新建配置文件 分别进入zk01-zk03各自的conf文件…

perflab 课程设计

初始状态 rotate 版本I 因为本题步步都在寻址而寻址的目标每一步又不同&#xff0c;并且在一个地址的值一次就赋值完毕&#xff0c;不会对同一个地址进行二次寻址&#xff0c;所以我首先想的改进方向就是使得寻址更加快速&#xff0c;于是我使得寻址的地址更加连续。 int i,…

【面试题】 javaScript 进阶之路 --- 《加深理解回调函数》

给大家推荐一个实用面试题库 1、前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 一. 函数 回调函数的基本概念我之前的文章虽然有些过&#xff0c;但是为了引入下文&#xff0c;在这里还是简单再提一嘴…

苹果电脑ntfs如何打开硬盘?mac能读取的硬盘格式

如今&#xff0c;使用Mac电脑的用户越来越多&#xff0c;但是不少用户却面临着一个问题&#xff0c;那就是Mac无法正常读写自己的NTFS格式的外置硬盘&#xff0c;硬盘上面保存着很多重要的文件数据&#xff0c;想要进行复制或者是编辑等&#xff0c;压根没有办法在Mac电脑上进行…

axios和SpringMVC数据交互(一维二维数组,JSON/form形式,@RequestBody/@RequestParam)

目录需求环境准备前端后端成功实现的案例以JSON形式发送double数组以JSON形式发送对象&#xff0c;对象中有数组以JSON形式发送对象&#xff0c;对象中有二维数组以x-www-form-urlencoded形式发送一维数组需求 前端或postman发送数组&#xff0c;后端controller做为入参接收 …

汽车专场 | 新能源汽车动力电池PACK CAE分析实例解读

一、PACK为什么需要CAE分析&#xff1f; PACK是新能源汽车最重要的组成部分&#xff0c;可称之为心脏&#xff0c;电池系统需要满足汽车运营条件下的苛刻力学环境的要求。按照传统研发方式&#xff0c;设计-样包-测试-优化-样包-测试&#xff0c;反复循环&#xff0c;这种传统…

学完高性能计算后的发展怎么样?

高性能计算行业是指从事高性能计算相关性质的生产、服务的单位或个体的组织结构体系的总称。深刻认知高性能计算行业定义&#xff0c;对预测并引导高性能计算行业前景&#xff0c;指导行业投资方向至关重要。 一、什么是高性能计算&#xff1f; 高性能计算指通常使用很多处理…

音视频学习(十四)——rtsp详解

概念 rtsp&#xff08;Real Time Streaming Protocol&#xff0c;RFC2326&#xff09;&#xff0c;实时流传输协议&#xff0c;是TCP/IP协议体系中的一个应用层协议。 该协议主要规定了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP体系结位于RTP和RTCP之上&#…

etsy账号被封的原因有哪些?

Etsy之所以让人又爱又恨&#xff0c;是因为它的流量大&#xff0c;但缺点是规则限制&#xff0c;尤其是对于中国卖家。根据各大社交媒体的留言和评论&#xff0c;大多数电商人最关心Etsy关店的问题。   为什么Etsy会被封号&#xff1f;首先&#xff0c;我们需要了解封号的原因…

高压放大器的输入和输出阻抗为啥是50欧的

选择高压放大器的时候&#xff0c;经常会看到有些高压放大器的输入和输出阻抗都是50欧&#xff0c;今天就来说说高压放大器和无处不在的50欧姆&#xff0c;来聊聊它们的关系。 电子测量仪器在使用的时候会出现电子信号幅度突然加倍或者减少一半的情况&#xff0c;原因是几乎所有…

用echarts实现柱状图

目录前言&#xff1a;什么是 Echarts 插件柱状图成品展示步骤&#xff1a;柱状图代码&#xff1a;前言&#xff1a; 大家都知道&#xff0c;一般情况下&#xff0c;想要使用前端设置一个 柱状图 需要使用 canvas 画布进行编写&#xff0c;不仅代码多&#xff0c;逻辑处理麻烦&…