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

文章目录

  • 安装环境
  • 启动环境
  • 漏洞花式利用
    • 蚁剑连接图片马
    • 读取敏感文件(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.mzph.cn/news/68665.shtml

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

相关文章

JVM的故事—— 内存分配策略

内存分配策略 文章目录 内存分配策略一、对象优先在Eden分配二、大对象直接进入老年代三、长期存活的对象将进入老年代四、动态对象年龄判定五、空间分配担保 一、对象优先在Eden分配 堆内存有新生代和老年代&#xff0c;新生代中有一个Eden区和一个Survivor区(from space或者…

恒运资本:北交所股票全红!不到10分钟30%涨停,“认房不认贷”发力了!

今天早盘&#xff0c;A股震荡上扬&#xff0c;上证指数、深证成指等重要股指高开高走&#xff0c;并均涨超1%&#xff0c;两市成交略有增加。 盘面上&#xff0c;房地产、家居用品、煤炭、钢铁等板块涨幅居前&#xff0c;光刻机、软件服务、半导体、机器视觉等板块跌幅居前。北…

【Linux系列】vmware虚拟机网络配置详解

非原创 原文地址[1] 首发博客地址[2] 系列文章地址[3] vmware 为我们提供了三种网络工作模式&#xff0c;它们分别是&#xff1a;Bridged&#xff08;桥接模式&#xff09;、NAT&#xff08;网络地址转换模式&#xff09;、Host-Only&#xff08;仅主机模式&#xff09;。 打开…

【能用Python就可以轻松解决这5个常见运维!】

许多运维工程师会使用 Python 脚本来自动化运维任务。Python 是一种流行的编程语言&#xff0c;具有丰富的第三方库和强大的自动化能力&#xff0c;适用于许多不同的领域。 在运维领域&#xff0c;Python 脚本可以用来实现各种自动化任务&#xff0c;例如&#xff1a; 连接远…

Cyber RT学习笔记---7、Component组件认知与实践

7、Component组件认知与实践 前言 本文是对Cyber RT的学习记录,文章可能存在不严谨、不完善、有缺漏的部分&#xff0c;还请大家多多指出。 课程地址: https://apollo.baidu.com/community/course/outline/329?activeId10200 更多还请参考: [1] Apollo星火计划学习笔记——第…

网络渗透day12-高级问题2

当然&#xff0c;继续提供更多高级网络渗透测试问题和回答&#xff1a; 在渗透测试中&#xff0c;您如何评估目标系统的人工智能&#xff08;AI&#xff09;模型的隐私保护机制&#xff0c;以查找可能的隐私泄露和数据滥用风险&#xff1f; - 回答&#xff1a;我会分析AI模型的…

Web自动化 —— Selenium元素定位与防踩坑

1. 基本元素定位一 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By # selenium Service("../../chromedriver.exe") # driver webdriver.Chrome(serviceService) # driver.…

【Unity3D】UI Toolkit元素

1 前言 UI Toolkit简介 中介绍了 UI Builder、样式属性、UQuery、Debugger&#xff0c;UI Toolkit容器 中介绍了 VisualElement、ScrollView、ListView、GroupBox 等容器&#xff0c;UI Toolkit样式选择器 中介绍了简单选择器、复杂选择器、伪类选择器等样式选择器&#xff0c;…

宝塔面板linux在终端使用命令开启服务保持服务不关闭

我们经常在宝塔面板终端开启服务&#xff08;比如socket等服务时&#xff09;&#xff0c;如果关闭面板标签页或者关闭终端&#xff0c;服务也随之关闭了&#xff0c;要保持服务一直运行&#xff0c;就需要把终端进程放在linux后台执行&#xff0c;方法如下&#xff1a; 1、先…

Linux入门之进程信号|信号产生的方式

文章目录 一、信号入门 1.linux信号的基本概念 2.使用kill -l 命令可以查看系统定义的信号列表 3.信号处理常见方式 二、产生信号 1.通过终端按键产生信号 2.通过调用系统函数向进程发信号 3.由软条件产生信号 4.硬件异常产生信号 1. /0异常 2.模拟野指针 一、信号入门…

华为数通方向HCIP-DataCom H12-821题库(单选题:221-240)

第201题 BGP 协议用​​ beer default-route-advertise​​ 命令来给邻居发布缺省路由,那么以下关于本地 BGP 路由表变化的描述,正确的是哪一项? A、在本地 BGP 路由表中生成一条活跃的缺省路由并下发给路由表 B、在本地 BGP 路由表中生成一条不活跃的缺省路由,但不下发给…

【ES6】Promise.all用法

Promise.all()方法用于将多个 Promise 实例&#xff0c;包装成一个新的 Promise 实例。 const p Promise.all([p1, p2, p3]);上面代码中&#xff0c;Promise.all()方法接受一个数组作为参数&#xff0c;p1、p2、p3都是 Promise 实例&#xff0c;如果不是&#xff0c;就会先调…

Vue2+Vue3笔记(尚硅谷张天禹老师)day02

声明:只是记录&#xff0c;初心是为了让页面更好看,会有错误,我并不是一个会记录的人&#xff0c;所以有点杂乱无章的感觉&#xff0c;我先花点时间把视频迅速过掉&#xff0c;再来整理这些杂乱无章的内容 组件化编程 按照视频来的话&#xff0c;这里应该有一些概念的东西&…

Java设计模式之适配器模式

适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式&#xff0c;它结合了两个独立接口的功能。 这种模式涉及到一个单一的类&#xff0c;该类负责加入独立的或不兼容的接口功能。举个真实的例子&#xff0…

数据结构零基础入门篇(C语言实现)

前言&#xff1a;数据结构属于C学习中较难的一部分&#xff0c;对应学习者的要求较高&#xff0c;如基础不扎实&#xff0c;建议着重学习C语言中的指针和结构体&#xff0c;万丈高楼平地起。 一&#xff0c;链表 1&#xff09;单链表的大致结构实现 用C语言实现链表一般是使…

PCL点云处理之快速计算多个点到同一直线的距离(二百零五)

PCL点云处理之快速计算多个点到同一直线的距离(二百零五) 一、算法简介二、具体实现1.代码2.结果一、算法简介 点到直线的距离计算,是一种常用的算法,在点云处理中,经常遇到需要计算多个点云到同一条直线的距离计算需求,此时若是逐点计算将耗费大量的时间,熟悉点到直线…

入选VLDB 2023! OceanBase 4.0单机分布式一体化研究成果获国际顶会认可

近日&#xff0c;国际顶级数据库学术会议 VLDB 2023 在加拿大温哥华开幕。OceanBase 研究成果论文 “OceanBase Paetica: A Hybrid Shared-nothing/Shared-everything Database for Supporting Single Machine and Distributed Cluster” 被 VLDB 2023 收录&#xff01;相继 20…

【ES6】Promise常用的方法

JavaScript中的Promise对象常用于处理异步操作&#xff0c;它具有以下常用的方法&#xff1a; 1、Promise.resolve(value)&#xff1a;返回一个已解析的Promise对象。如果value是一个thenable对象&#xff08;即具有then方法的对象&#xff09;&#xff0c;返回的Promise将&qu…

ACL 访问控制 过滤数据 维护网络安全(第七课)

一 ACL 简介 ACL是Access Control List(访问控制列表)的缩写,是一种用于控制文件、目录、网络设备等资源访问权限的方法。ACL可以对每个用户或用户组设置不同的访问权,即在访问控制清单中为每个用户或用户组指定允许或禁止访问该资源的权限。它通常由一系列规则组成,规则…

Qt 定时器放在线程中执行,支持随时开始和停止定时器。

前言&#xff1a;因为项目需要定时检查网络中设备是否能连通&#xff0c;需要定时去做ping操作&#xff0c;若是网络不通&#xff0c;则ping花费时间比较久&#xff08;局域网大概4秒钟才能结束&#xff0c;当然如果设置超时时间啥的&#xff0c;也能很快返回&#xff0c;就是会…