PHP文件包含漏洞代码分析-通过漏洞getshell-学习笔记

2023-11-09

一、原理分析

文件包含漏洞是代码注入的一种。其原理就是注入一段用户能控制的脚本或代码,并让服务器端执行,代码注入的典型代表就是文件包含(File inclusion)。文件包含可能会出现在jsp、php、asp等语言中。服务器通过函数去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的。

准备工作:

PHP环境

为什么会造成文件包含漏洞?

利用PHP JSP JSP等函数

PHP:include() 、include_once()、require()、require_once()、fopen()、readfile()

JSP/Servlet:ava.io.file()、java.io.filereader()

ASP:include file、include virtual

如果未对功能进行过滤,就产生文件包含漏洞

实验案例1

我们使用PHP的include()函数,进行代码还原漏洞

直接上代码,使用GET请求

$file = $_GET['file'];
if (isset($file)) {
    include($file);
}

然后我们就可以对任意文件进行访问,

例如我们访问我们目录下的sssss.php

直接可以把里面的内容输出出来

甚至是其他的网站的PHP也可以输出出来,我们在另一个端口的站点在建立一个PHP

而且是无视文本格式的,不管你是不是PHP文件,例如

假设别的网站有PHP信息泄露

如何查看另一个网站的PHP信息?

 可以跨站访问到另一个网站上的文件

无视拓展名:

我们把PHP文件改成其他格式例如.dwd

我也不懂是啥类型的文件

总结:不管什么格式的文件都一样会执行PHP代码

那么我们试想一下,是否可以进行getshell呢?

假设我们有一个网站有上传漏洞,但我们并不能进行直接getshell,这时候我们就用到这漏洞来进行getshell

假如我们有个网站已经成功上传shell 了,但是无法运行,因为是其他格式的

那么我们可以通过文件包含漏洞来进行getshell

首先写入一句话木马

<?php eval($_POST['cmd']) ?>

成功访问不是PHP结尾的文件, 

 利用蚂剑看看能不能连接成功

getshell成功!!!

 

总结:

 文件包含漏洞危害及其大,如有被利用不堪设想

解决方案

文件包含需要配置 allow_url_include=On(远程文件包含)、allow_url_fopen=On(本地文件包含) 。所以,我们可以将其关闭,这样就可以杜绝文件包含漏洞了。但是,某些情况下,不能将其关闭,必须进行包含的话,我们可以使用白名单过滤的方法,只能包含我们指定的文件。这样,就可以杜绝文件包含漏洞了

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP文件包含漏洞代码分析-通过漏洞getshell-学习笔记 的相关文章

随机推荐

  • 使用 ArrayList 应当避免的坑

    大家都知道 ArrayList 是由数组实现 而数据的长度有限 需要在合适的时机对数组扩容 当我们初始化一个长度为 2 的 ArrayList 并往里边写入三条数据时 ArrayList 就得扩容了 也就是将之前的数据复制一份到新的数组长度
  • clion的学习资料

    1 官方指南 https www jetbrains com help clion meet clion html 2 下面是一些快捷键的例子 快捷键配置 File gt Setting gt Keymap gt Keymaps 选择Vis
  • 一文读懂USB Type-C接口 <一>:引脚和功能指南

    本文将介绍USB Type C标准的一些最重要的特性 你知道如何使用USB Type C接口吗 本文列出了USB Type C引脚的解剖结构 并简要介绍了其各种模式 USB Type C是一种USB连接器系统的规范 它在智能手机和移动设备中
  • 基于单片机的蔬菜大棚温湿度智能控制系统设计

    基于单片机的蔬菜大棚温湿度智能控制系统设计 目 录 基于单片机的蔬菜大棚温湿度智能控制系统设计 1 设计背景 2 设计方案 2 1 设计目的 2 2 设计思路 2 3 系统整体设计思路 2 4 设计要求 3 功能模块设计 3 1 主控模块
  • zynq audio pcm DMA

    本篇接着上一篇 概述pcm调用DMA操作流程 接着ynq alsa说起 181 static int axi i2s probe struct platform device pdev 182 183 struct resource res
  • 浅谈【Stable-Diffusion WEBUI】(AI绘图)的基础和使用

    文章目录 零 AI绘图 一 简单介绍 1 1 Stable Diffusion 1 2 Stable Diffusion WEB UI 1 3 SD WebUI启动器和整合包 二 使用 2 1 启动 控制台 WEBUI 2 2 模型 2 2
  • How to change SSH port on Centos 6, 7, and 8.

    In this tutorial we will go through the steps on how to change the SSH port on Centos 6 7 and 8 Download PDF Posted 23 S
  • 解决vue白屏问题

    咱们先看看vue白屏在ios手机上是如何产生的 首页跳转到到第二屏 再从二级页面返回到首页就会出现白屏情况 解决思路 既然是首页白屏那么就要从首页开始解决问题 经过多次比对发现 返回到首页后 出现白屏 然后咱们用手触摸或则向下滑动 白屏就没
  • opencv编写均值滤波_opencv3.2.0图像处理之均值滤波blur API函数

    均值滤波 blur函数 函数原型 void blur InputArray src OutArray dst Size ksize Point anchor point int borderType BORDER DEFAULT 参数详解同
  • 仿叮咚买菜开源代码

    1 预览 1 前台 http dingdong nodebook top github地址 https github com cgq001 dingdong 2 后台管理 http dingdong admin nodebook top g
  • Python 中的列表推导式

    Python 中的列表推导式 简单用法 添加多个条件 多个列表使用 替换 Reduce 和 Lambda 嵌套列表推导式 列表推导式是一种 Python 构造 可减少生成新列表或过滤现有列表所需的代码行 列表推导式包含在方括号内 它由一个表
  • 12306查询车票信息返回的数据解析

    例如普通k 返回的车次信息 26000K772633 K7727 HDP QTP BXP TJP 00 42 02 33 01 51 Y UqBhHc2N4C1b00y5vYeRuG025cKMjh0sxUwHbuwDNWuOXRhule
  • shell case语句及函数

    case 菜单选择打印 语法 case var in var变量 patten 1 匹配模式1 a b c 和or类似 command 需要执行的命令 命令执行完毕 patten 2 command 默认值 没有匹配的模式 command
  • 【java】java中解决线程安全问题的三种方法

    java中解决线程安全问题的三种方法 当我们使用线程进行卖票时会出现诸多的安全问题为了解决这种情况 有三种方法可以进行选择 第一种是同步代码块 第二种是同步方法 第三种是Lock锁 在没有用的解决安全问题的时候会出现以下问题 测试类 pub
  • IIS7.0、7.5解析漏洞利用

    IIS7 0 7 5解析漏洞利用 1 测试漏洞是否可用 2 WebShell制作 3 上传WebShell 4 连接WebShell 1 测试漏洞是否可用 网站任意图片地址后加 脚本类型 若出现编译错误 则漏洞存在 2 WebShell制作
  • AI对游戏外包开发的影响

    人工智能 AI 对游戏行业产生了深远的影响 从游戏设计 开发到玩家体验等方面都发挥着重要作用 以下是AI对游戏行业的一些主要影响 和大家分享一些观点 希望对大家有所帮助 北京木奇移动技术有限公司 专业的软件外包开发公司 欢迎交流合作 1 游
  • 使用Vlc.DotNet打开摄像头并截图 C#

    参考上一篇 使用vlc打开usb摄像头 理论上输入下面地址 dshow dshow size 1600 1200 dshow vdev USB CAM2 C 就能打开摄像头了类似打开本地文件或者rtsp之类的网络地址 但实际测试怎么着都是打
  • 计算机网络复习4----TCP的拥塞窗口cwnd大小与传输轮次n的关系

    这里是 凤凰谷佛的计算机网络复习系列之4 一起来看看吧 书中P236 图5 27 1 5 39 TCP的拥塞窗口cwnd大小与传输轮次n的关系如下所示 试分析回答 1 指明TCP工作在慢开始阶段的时间间隔 解析 满开始时间间隔看在哪一刻2倍
  • traits:Traits技术初探

    概述 traits是一种特性萃取技术 color 663300 font family 宋体 padding 0px margin 0px gt 它在Generic Programming中被广泛运用 常常被用于使不同的类型可以用于相同的操
  • PHP文件包含漏洞代码分析-通过漏洞getshell-学习笔记

    一 原理分析 文件包含漏洞是代码注入的一种 其原理就是注入一段用户能控制的脚本或代码 并让服务器端执行 代码注入的典型代表就是文件包含 File inclusion 文件包含可能会出现在jsp php asp等语言中 服务器通过函数去包含任