文件包含漏洞利用的几种方法

news2025/1/13 14:19:01

文章目录

  • 安装环境
  • 启动环境
  • 漏洞花式利用
    • 蚁剑连接图片马
    • 读取敏感文件(hosts)
    • 读取该网站的php源码
  • 代码审计

安装环境

安装phpstudy,下载MetInfo 5.0.4版本软件,复制到phpstudy目录下的www目录中。

打开phpstudy,访问浏览器127.0.0.1/MetInfo5.0.4/install/index.php,打开Meinfo 5.0.4主页,点击下一步、下一步,到数据库设置中配置数据库信息,数据库名设为met1,密码设为root:

在这里插入图片描述

填写管理员设置,设置用户名,密码设为root,手机号码和电子邮箱随便填写:

在这里插入图片描述

点击保存设置后显示安装完成:
在这里插入图片描述

启动环境

安装成功后打开网页:
在这里插入图片描述

漏洞花式利用

漏洞原理

在MetInfo软件的127.0.0.1/MetInfo5.0/about/index.php 页面存在文件包含漏洞,在这里上传文件可以利用这个漏洞

蚁剑连接图片马

访问漏洞点127.0.0.1/MetInfo5.0/about/index.php页面,用fmodule和module参数上传图片马:

?fmodule=7&module=../upload/file/muma.gif

上传成功后用hackbar尝试输入打开,发现一堆乱码,但是打开成功:

在这里插入图片描述

打开蚁剑,输入上面的地址,测试连接成功,连接成功获取webshell:

在这里插入图片描述

读取敏感文件(hosts)

用相对路径读取hosts文件:

?fmodule=7&module=../../../../../../windows/system32/drivers/etc/hosts

如图,读取成功:

在这里插入图片描述

用绝对路径读取hosts文件:

?fmodule=7&module=c:/windows/system32/drivers/etc/hosts

读取成功:
在这里插入图片描述

读取该网站的php源码

?fmodule=7&module=php://filter/read=convert.base64-encode/resource=show.php

得到base64的源码密文:

在这里插入图片描述

利用工具进行解码,得到网站的源码:

在这里插入图片描述

代码审计

查看C:\phpStudy\WWW\MetInfo5.0.4\include目录下的module.php文件,从第119行看找到下面代码:

if($fmodule!=7){
	if($mdle==100)$mdle=3;
	if($mdle==101)$mdle=5;
	$module = $modulefname[$mdle][$mdtp];
	if($module==NULL){okinfo('../404.html');exit();}
	if($mdle==2||$mdle==3||$mdle==4||$mdle==5||$mdle==6){
		if($fmodule==$mdle){
			$module = $modulefname[$mdle][$mdtp];
		}
		else{
			okinfo('../404.html');exit();
		}
	}
	else{
		if($list){
			okinfo('../404.html');exit();
		}
		else{
			$module = $modulefname[$mdle][$mdtp];
		}
	}
	if($mdle==8){
	if(!$id)$id=$class1;
	$module = '../feedback/index.php';
	}
}

这段代码的if语句中如果fmodule不等于7,就会给module做初始化,等于7不会做初始化。

而在C:\phpStudy\WWW\MetInfo5.0.4\about下的index.php文件中

有下面代码:

<?php
# MetInfo Enterprise Content Management System 
# Copyright (C) MetInfo Co.,Ltd (http://www.metinfo.cn). All rights reserved. 
$filpy = basename(dirname(__FILE__));
$fmodule=1;
require_once '../include/module.php';
require_once $module;
# This program is an open source system, commercial use, please consciously to purchase commercial license.
# Copyright (C) MetInfo Co., Ltd. (http://www.metinfo.cn). All rights reserved.
?>

module是前面没有赋值的参数,require_once做module的文件包含,如果fmodule=7而module没有赋值,页面的回显就会空白。

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

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

相关文章

Ubuntu系统下配置 Qt Creator 输入中文、配置软件源的服务器地址、修改Ubuntu系统时间

上篇介绍了Ubuntu系统下搭建QtCreator开发环境。我们可以发现安装好的QtCreator不能输入中文&#xff0c;也没有中文输入法供选择&#xff0c;这里需要进行设置。 文章目录 1. 配置软件源的服务器地址2. 先配置Ubuntu系统语言&#xff0c;设置为中文3. 安装Fcitx插件&#xff…

Android 下第一个fragment app 先Java 后Kotlin

看着视频学习的&#xff0c;Fragment&#xff1a;3.Fragment使用方法_哔哩哔哩_bilibili 在android studio 下新建一个工程&#xff0c;类型是 Empty View Activity&#xff0c;本身就有一个Activity。就有文件MainActivity.java 或者kt&#xff0c;还有一个layout 文件&#…

如何给小程序会员添加档案记录

​给小程序会员添加档案记录&#xff0c;可以帮助商家更好地管理会员信息和提供个性化的服务。下面就具体介绍怎么设置档案记录。 1. 找到指定的会员卡。在管理员后台->会员管理处&#xff0c;找到需要添加档案记录的会员卡。也支持对会员卡按卡号、手机号和等级进行搜索。…

unity 之 如何获取父物体与子物体

文章目录 获取父物体获取子物体 获取父物体 在Unity中&#xff0c;你可以使用Transform组件的属性来获取对象的父物体。以下是在C#脚本中如何获取父物体的示例代码&#xff1a; using UnityEngine;public class GetParentExample : MonoBehaviour {void Start(){// 获取当前物…

人生中的孤独

孤独是一种深刻而痛苦的情感状态&#xff0c;在这个喧嚣而充满人群的世界中&#xff0c;许多人都曾经或正在经历孤独的阶段。 孤独并不仅仅是身边缺乏他人的陪伴&#xff0c;更是一种内心的空虚和失落。 孤独的人生可能来源于各种原因。 有些人可能因为缺乏亲密的人际关系&…

基于STM32的空气质量检测LCD1602显示报警仿真设计(仿真+程序+讲解)

本设计 基于STM32的空气质量检测报警仿真设计(仿真程序讲解&#xff09; 1.主要功能2.仿真3. 程序4. 资料清单&下载链接 基于STM32的空气质量检测报警仿真设计(仿真程序讲解&#xff09; 仿真图proteus 8.9 程序编译器&#xff1a;keil 5 编程语言&#xff1a;C语言 设…

信息安全——密钥管理

根据近代密码学观点&#xff0c;密钥体制的安全应当只取决于密钥的安全&#xff0c;而不取决于对密码算法的保密。因此密钥管理是至关重要的。 从技术上讲&#xff0c;密钥管理包括密钥的产生、存储、分配、组织、使用、更换和销毁等一系列技术问题。每个密钥都有其生命周期&a…

医学影像软件 Sante DICOM Viewer Crack

医学影像软件 Sante DICOM Viewer Crack Sante DICOM Viewer是用于恢复&#xff0c;查看&#xff0c;存储&#xff0c;存档&#xff0c;管理和刻录医学图像的最佳软件之一。它是专业的DICOM显示器&#xff0c;转换器&#xff0c;PACS客户端&#xff0c;迷你PACS服务器&#xff…

【0831作业】QTday2 加载资源文件、信号与槽机制(非常重要)、界面跳转

一、思维导图 二、今日面试题 三、今日知识回顾 1 信号与槽的连接 .h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QDebug> #include<QPushButton> #include<QTextToSpeech>//文本转语音类 QT_BEGIN_NAMESPACE namespace Ui { c…

比较opencv,pillow,matplotlib,skimage读取图像的速度比较

上面这些库都被广泛用于图像处理和计算机视觉任务&#xff1b; 不同的图像读取库&#xff08;OpenCV&#xff0c;Pillow&#xff0c;matplotlib和skimage&#xff09;的读取速度&#xff0c;是怎么样的一个情况&#xff1f; 下面分别从读取速度&#xff0c;以及转换到RGB通道…

端到端自动驾驶综述

End-to-end Autonomous Driving: Challenges and Frontiers 文章脉路 Introduction 从经典的模块化的方法到端到端方法的一个对比, 讲了各自的优缺点, 模块化的好处是各个模块都有自己明确的优化的目标, 可解释性较强, 且容易debug, 缺点是各个模块优化的目标并不是最终的驾…

智能电销机器人,主要体现的价值是什么

21世纪科技的迅速发展&#xff0c;人工智能逐渐走入大家的视线&#xff0c;越来越多的机器人出现在我们生活中。见的最多的有电销公司的智能语音机器人、在仓库拣货打包的机器人、商场店铺供娱乐对话的机器人。机器人活跃在各行各业中&#xff0c;降低了人工成本&#xff0c;代…

Realsense D435i实时运行ORB-SLAM3

三、ORB-SLAM3的ROS编译&#xff08;Realsense D435i实时跑ORB-SLAM3&#xff09; 四、ORB-SLAM3的ROS运行 3. ROS运行单目demo 创建ROS工作空间,初始化 mkdir -p ~/catkin_ws/src cd ~/catkin_ws catkin_make source devel/setup.bash echo "source ~/catkin_ws/devel/…

人生的回忆

回忆是人类宝贵的精神财富&#xff0c;它们像一串串珍珠&#xff0c;串联起我们生活中的每一个片段。 回忆是时间的见证者&#xff0c;它们承载着我们成长、经历、悲欢离合的点点滴滴。 回忆让我们重温过去的欢笑与眼泪&#xff0c;感受那些已经逝去的时光。它们就像一本翻开的…

Jmeter(三十一):制造大批量的用户数据数据

需求&#xff1a;因测试需要&#xff0c;要造100w用户数据&#xff0c;通过用户名、手机号、密码可新增用户&#xff0c;其中用户名和电话号码要求100w用户不能重复 要点&#xff1a; 1、通过Bean shell Sampler实现用户名和手机号的足够随机。 符合我们常用规则的手机号&#…

Shell编程之流程控制

目录 if判断 case语句 for循环 while循环 if判断 语法&#xff1a; if [ 条件判断表达式 ] then 程序 elif [ 条件判断表达式 ] then 程序 else 程序 fi 注意&#xff1a; [ 条件判断表达式 ]&#xff0c;中括号和条件判断表达式之间必须有空格。if&#xff0c;elif…

8个 Python 自动探索性数据分析神库!

探索性数据分析是数据科学模型开发和数据集研究的重要组成部分之一。在拿到一个新数据集时首先就需要花费大量时间进行EDA来研究数据集中内在的信息。自动化的EDA Python包可以用几行Python代码执行EDA。 在本文中整理了10个可以自动执行EDA并生成有关数据的见解的Python包&am…

43、基于 springboot 自动配置的 spring mvc 错误处理,就是演示项目报错后,跳转到自定义的错误页面

Spring MVC 的错误处理&#xff1a;基于 SpringBoot 自动配置之后的 Spring MVC 错误处理。 就是访问方法时出错&#xff0c;然后弄个自定义的错误页面进行显示。 ★ 两种错误处理方式 方式一&#xff1a; 基于Spring Boot自动配置的错误处理方式&#xff0c;只要通过属性文件…