文件包含漏洞

【文件包含】文件包含漏洞知识总结 【文件包含】文件包含漏洞知识总结 Hello,各位小伙伴周五好~ 这里是你们的劳模小编~ 之前一期,我们已经一起总结了文件上传和文件解析漏洞。 今天我们就一起来看看文件包含漏洞吧~ 一、什么是文件包含漏洞? 1、文件包含概述 和SQL注入等攻击方式一样,文件包含漏洞也是一种“注入型漏洞”,其本质就是输入一段用户能够控制的脚本或者代码,并让服务器端执行。 什么叫包含呢?以PHP为例,我们常常把... 阅读详情

概述

程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需 再次编写,这种文件调用的过程一般被称为文件包含。程序开发人员一般希望代码更灵活,所以将被包 含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意 文件,造成文件包含漏洞。 在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件, 导致意外的文件泄露甚至恶意的代码注入。

分类

本地文件包含

只能包含本地服务器上存在的文件。 用户对输入可控且无过滤 可以利用相对路径或绝对路径读取系统敏感文件

远程文件包含

包含远程服务器上的文件。 需要php.ini开启了allow_url_fopen和allow_url_include的配置。包含的文件是第三方服务器(比如: 攻击者自己搭建的一个Web服务器)的文件。 allow_url_fopen=On (默认为On) 规定是否允许从远程服务器或者网站检索数据 allow_url_include=On (php5.2之后默认为Off) 规定是否允许include/require远程文件

远程与本地包含的区别

本地文件包含就是通过浏览器包含web服务器上的文件,这种漏洞是因为浏览器包含文件时没有进行严 格的过滤,允许遍历目录的字符注入浏览器并执行。 远程文件包含就是允许攻击者包含一个远程的文件,一般是在远程服务器上预先设置好的脚本并对外开 放一个web服务,以确保该脚本能被访问到。此漏洞是因为浏览器对用户的输入没有进行检查,导致不 同程度的信息泄露、拒绝服务攻击,甚至在目标服务器上执行代码。 本地文件包含与远程文件有着相同的原理,但前者只能包含服务器上存在的文件,而后者可以包含远程 服务器上的文件。

PHP中文件包含函数有以下四种

require() include() require_once() include_once() nclude和require区别主要是,include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常 运行;而require函数出现错误的时候,会直接报错并退出程序的执行。 而include_once(),require_once()这两个函数,与前两个的不同之处在于这两个函数只包含一次。适 用于在脚本执行期间同一个文件有可能被包括超过一次的情况下,想确保它只被包括一次以避免函数重 定义,变量重新赋值等问题。

URL中如果出现了如下内容就可能存在文件包含漏洞 ?page= ?file= ?home=

常见的敏感信息路径

windows系统

c:\boot.ini // 查看系统版本 c:\windows\system32\inetsrc\MetaBase.xml //IIS配置文件 c:\windows\repair\sam //存储windows系统初次安装的密码 c:\programFiles\mysql\my.ini //MYSQL root密码 c:\windows\php.ini // php 配置信息

Linux/Unix系统

/etc/passwd // 账户信息 /etc/shadow // 账户密码文件 /usr/local/app/apache2/conf/httpd.conf // Apache2默认配置文件 /usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置 /usr/local/app/php5/lib/php.ini // PHP相关配置 /etc/httpd/conf/httpd.conf // Apache配置文件 /etc/my.conf // mysql 配置文件

如何发现文件包含漏洞

1、观察URL链接是否包括以下类似的关键字:page/include/path/file/link/url等,如果有,则可能 存在文件包含漏洞; 2、可以观察在URL中,出现的赋值参数等号后跟的信息,是否为一个文件,如果是,则可能存在文件 包含漏洞; 3、在关键字处或明显被文件赋值的参数处,尝试进行赋值,如:http://www.baidu.com;或系统常见 文件,如:/etc/passwd(linux) 4、配合文件上传漏洞进行验证

DVWA演示

1. Low

不同难度下的界面都是相同的,可以注意到有file1.php,file2.php,file3.php三个文件。

任意点击其中一个文件如file1.php,地址栏的page=include.php就会相应变为page=file1.php,即利 用GET的方法来获取服务器中的php文件。

源码分析得出:直接通过get去传递page参数进行文件包含,没有任何过滤。

尝试获取服务器上的文件内容,输入 ../../../../../../(多少个../都行,越多越好)/etc/passwd

../ 返回上级目录,当返回到根目录时候再../还是根目录,然后直接进入linux系统的passwd文件

也可以尝试包含php.ini,可以看到,现在的页面是在 vulnerabilities/fi/file1.php,如果想要访问 php.ini需要回退两次,可以输入../../php.ini

成功包含到php配置文件

2. str_replace函数绕过 (Medium)

分析: Medium级别的代码增加了str_replace函数,对page参数进行了一定的过滤,将”http:// ”、”https://”、 ” ../”、”..\“”替换为空字符。 但str_replace函数并不是很安全,双写就可以绕过了。而且” ../”、”..\”替换为空字符,那么绝对路径来 讲,是不受任何影响的。 http://10.0.0.79:8080/vulnerabilities/fi/?page=..././..././..././..././..././..././etc/passwd

3. fnmatch() 函数绕过(High)

查看源码:

可以看到,这里用了fnmatch函数 : fnmatch() 函数根据指定的模式来匹配文件名或字符串 语法: fnmatch(pattern,string,flags) pattern 必需。规定要检索的模式。 string 必需。规定要检查的字符串或文件。 flags 可选。

限制了page参数的开头必须是file,但是可以用file://协议类进行文件读取 http://10.0.0.79:8080/vulnerabilities/fi/?page=file:///etc/passwd

远程文件包含

远程文件包含是指包含非被攻击机器上的文件。 此处我们使用dvwa的文件包含漏洞包含 upload-labs 中的文件;

这里我们用两个靶场,一个是dvwa,一个是upload-labs

dvwa的地址为172.17.0.2

upload的地址为172.17.0.3

我们先在upload-labs中通过文件上传漏洞,上传一个phpinfo()文件

然后我们在dvwa中利用文件包含漏洞去包含upload中的php文件

我们到后台看一下dvwa的版本

发现和我们文件包含得到的结果不一致

这是因为我们上传的一个php文件,所以它直接执行了,显示的结果是upload的

那我们在upload中上传一个txt文件

然后在dvwa中进行文件包含

文件包含getshell

1. 中间件日志包含绕过

DVWA中,apache2日志文件路径为: /var/log/apache2/access.log 包含日志文件,需要先对文件和目录添加权限,让web端有权限去访问:

修改完权限之后,访问 10.0.0.79:8080/vulnerabilities/fi/?page=<?php phpinfo();?>

因浏览器会进行url编码,使用burp抓包进行修改,将编码字符改为原字符

让access.log 文件记录中包含PHP代码 <?php phpinfo(); ?>

然后我们通过文件包含漏洞来访问

2. 配合文件上传getshell

思路: 1. 把代码+图片合在一起,最终看到还是一个图片,只是这个图片中有代码 2. 上传一个带有代码的jpg图片 3. 以文件包含漏洞来执行图片的php代 码

关于文件上传和图片吗的内容,可以查看https://blog.csdn.net/Williamanddog/article/details/128784444?spm=1001.2014.3001.5501

上传成功,并且获得上传路径

现在我们再利用文件包含漏洞访问该图片

同样我们可以利用蚁剑连接

注意这里要设置cookie值

成功连接

利用文件包含漏洞-getshell 一、什么是文件包含漏洞 文件包含是指应用程序没有对引用的文件做合理的校验,导致包含的文件中含有恶意的代码,并且执行了该代码。从而产生了文件包含漏洞 二、文件包含漏洞的利用条件 1.引用一个任意类型的文件 2.程序读取文件并且执行 三、将木马程序放入某个本地文件中。 1.利用网站报错日志写入木马程序 2.利用文件上传功能,上传含有木马的任意文件 四、文件包含getshell 1.本地文件包含getshell 网站会将一些错误信息记录到日志文件中,我们可以利用这个特性将木马写入日志文件中去 阅读详情

相关推荐

文件包含漏洞总结都在这里了

文件包含漏洞总结,全在这里了

yuanxu8877的博客 3640

【文件包含漏洞-03】文件包含漏洞的利用及如何利用本地文件包含漏洞GetShell

如果网站存在远程文件包含漏洞,攻击者在服务器2号上写一个一句话木马文件,利用网站远程文件包含该文件,并不能Get网站Shell。由于没有存在文件上传点,而我们又需要服务器本地有个文件存在一句话木马代码,这时候我们想到,日志文件记录报错的方法,就是从日志文件中“写入”一句话木马,然后再利用文件包含来执行日志文件中的一句话木马。在该网站根目录下,新建文件FileInclusion,在此文件夹中新建文件include.php,文件内容为。我们可以利用文件包含漏洞读取任意文件,读取文件的时候有利用条件。

cc 3929

DVWA之文件包含漏洞

DVWA之文件包含漏洞

weixin_56306210的博客 2391

文件包含漏洞结合ssh登录日志getshell

文件包含(漏洞)是程序开发人员通常出于灵活性的考虑,会将被包含的文件设置成变量,然后动态调用这些文件。但正是因为调用的灵活性导致用户可能调用一些恶意文件,造成文件包含漏洞。文件包含漏洞分为本地文件包含漏洞和远程文件包含漏洞。php中文件包含的函数有:require(),找不到被包含的文件时会产生致命错误,并停止脚本运行。include(),找不到被包含的文件时只会产生警告,脚本将继续运行。include_once()与include()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。

weixin_54813510的博客 1400

文件包含漏洞及漏洞利用

文件包含漏洞 文件包含 程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某个函数的时候,直接调用此文件,无需再次编写,这种调用文件的过程通常称为包含。 程序开发人员都希望代码更加灵活,所以通常会把被包含的文件设置为变量,来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用任意文件,造成文件包含漏洞。 几乎所有的脚本语言都会提供文件包含功能。文件包含漏洞在PHP Web Application中居多,在JSP/ASP/ASP.net程序中比较少。接下来以PHP为例,说明文件包含漏洞。 漏洞产

Marsper的博客 1406

【网络安全】日志注入getshell

中间件的日志文件通常用于保存网站的访问记录,其中包括了客户端发送的HTTP请求行、User-Agent、Referer等信息。这些日志文件对于网站的运维和安全分析非常有用。如果能够在HTTP请求中插入恶意代码,那么这些恶意代码就会被保存到日志文件中。当访问日志文件时,其中的恶意代码可能会被执行

等风来 4571

文件包含漏洞详解

文件包含漏洞就是使用函数去包含任意文件的时候,当包含的文件来源过滤不严谨的时候,当存在包含恶意文件后,就可以通过这个恶意的文件来达到相应的目的。file : // #访问本地文件系统 http : // #访问HTTPs网址 ftp : // #访问ftp URL php : // #访问输入输出流 zlib : // #压缩流 data : // #数据 ssh2 : // #security shell2 expect : // #处理交互式的流 glob : // #查找匹配的文件路径。

剁椒鱼头没剁椒的博客 5365

python爬虫入门教程(非常详细)

爬虫指的是一种自动化程序,能够模拟人类在互联网上的浏览行为,自动从互联网上抓取、预处理并保存所需要的信息。爬虫运行的过程一般是先制定规则(如指定要抓取的网址、要抓取的信息的类型等),紧接着获取该网址的HTML源代码,根据规则对源代码进行解析和抽取,最后进行处理和保存。爬虫在实际应用中广泛使用,如搜索引擎、大数据分析、交易数据采集等领域,都需要用到爬虫技术来实现信息的定向采集和处理。

工宗浩生财指南针 2万+

文件包含漏洞详解(超级详细)

程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这种文件调用的过程一般被称为文件包含。服务器执行PHP文件时,可以通过包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件。

weixin_58849785的博客 7171

OriginPro实战:5步搞定碳材料拉曼光谱D峰G峰分析(附完整数据处理流程)

本文详细介绍了使用OriginPro进行碳材料拉曼光谱D峰G峰分析的完整流程,涵盖数据预处理、多图层可视化、高精度分峰拟合等关键步骤。特别针对材料科学研究中的基线漂移、多峰重叠等问题提供专业解决方案,帮助研究者快速完成从原始数据到科研级图表的全流程分析,提升碳材料表征效率与准确性。

vodka的博客 932

浙大数值分析lab2

最可怕的一道题,题目是这样的 Root of a Polynomial A polynomial of degree nnn has the common form as p(x)=cnxn+cn−1xn−1+⋯+c1x+c0p(x)=c_n x^n + c_{n-1} x^{n-1} + \cdots + c_1 x + c_0p(x)=c​n​​x​n​​+c​n−1​​x​

yao_zou的博客 4785

【文件包含漏洞】——文件包含漏洞入门

文章目录一、实验目的:二、工具:三、实验环境:四、漏洞说明:1. 什么是文件包含?2. 漏洞成因:3. 文件包含相关的四个函数:4. 漏洞原理:5. 文件包含漏洞的形成,需要满足两个条件:6. 文件包含漏洞危害:7. 文件包含各个脚本代码:六、文件类型:1. 本地文件包含(LFI):1.2 常见的敏感信息路径:2. 远程文件包含(RFI):2.1 原理:五、环境准备:1. 文件包含的两个重要的php参数:2. 修改`php.ini`配置文件:3. 虚拟机关闭window系统的安全中心的病毒实时防护:六、实验

weixin_45588247的博客 2608

在最新版eclipse中配置使用AI AIcoder _AIcoder配置GPUSTACK使用_配置OLLAMA本地AI模型利用_集合---AI场景应用工作笔记

本文介绍了三款实用的编程辅助工具:一款便捷的反编译插件,可直接在插件市场安装使用;GitHub Copilot提供每月2000次代码补全和50条聊天记录的免费额度,支持智能代码提示功能;aicoder支持配置本地模型运行。这些工具都能有效提升开发效率,其中GitHub Copilot的智能补全功能尤为突出。

添柴程序猿的专栏 1186

【文件包含漏洞】——文件包含漏洞进阶_文件包含漏洞绕过

文章目录一、实验目的:二、工具:三、实验环境:四、环境准备:1. 营造环境:2. 设置phpstudy环境:五、实验过程:1. 本地文件包含:1.1 %00截断绕过:1.1.1 原理:1.1.2 实验步骤:1.2 路径长度截断:1.2.1 原理:1.2.2 实验步骤:1.3 点号截断:1.3.1 原理:1.3.2 实验步骤:1.4 双写绕过:1.5 大小写混合绕过:1.6 伪协议绕过:2. 远程文件包含:2.1 问号绕过:2.2 #号绕过:2.3 `%00截断`绕过:2.4 其他绕过方式: 一、实验目的:

weixin_45588247的博客 6590

15.1-缓存调试解析

摘要:DSU-120提供L3缓存和监听过滤器(SF)RAM的调试功能,通过CLUSTERCDBG寄存器控制访问。该功能需在集群ON电源模式下使用,且需确保单核访问。寄存器位字段根据读写操作不同,可配置WAY、RAM类型等参数。数据读取分为监听过滤器RAM、标签RAM、数据RAM及MTE标签四种类型,各有特定的位字段解释。配置参数包括切片ID宽度、标签索引宽度等,随缓存大小变化。

baron-周贺贺-代码改变世界ctw 106

北斗导航 | 卫星/惯导组合导航方法

从组合导航结构方面来讲,卫星/惯导(下文以GPS/INS)组合模式一般分为三种,即松组合、紧组合和超紧组合(即深组合)。

尘世冰封的专栏 1524

PHP漏洞之文件包含漏洞

在php语言中存在着下面几个函数存在文件包含的的功能,这些函数的本意是方便开发者及用户实现某些功能,但是如果不对文件包含的内容进行严格的的限定,会被攻击者恶意利用。这就是php的文件包含漏洞。下面有四个函数可以实现文件包含分别是: 1.include();用此函数包含的时候,如果出现错误,会提出警告,跳过此步骤继续执行剩下的代码。 2.require();此函数文件包含出现错误的时候,终止程序的运行,与include()区别就是这里。 3.include_once()与1的唯一区别是文件只被包含一次,避免文

dogeace的博客 2049

基于Requests的百度图片搜索爬取技术详解

本文介绍了一种高效获取百度图片搜索数据的混合请求爬虫技术。该技术结合HTML解析与JSON API调用,通过分析百度图片搜索的网络通信模式,实现了首页HTML解析获取初始参数、后续页面直接调用JSON接口的双重机制。系统采用模块化设计,包含Cookies解析、智能请求分发、数据提取、图片下载等核心模块,支持自定义关键词和爬取页数配置。关键技术包括动态参数管理、正则表达式提取、JSON数据处理等,相比传统爬虫方法具有效率高、资源消耗低的优势,为计算机视觉研究提供了可靠的大规模图片数据采集方案。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 418

文件包含漏洞——原理及漏洞防御

1、文件包含漏洞原理。 原理: 在通过PHP的相应函数(比如include())引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入 文件包含漏洞的形成,需要满足两个条件: 1、 include()等函数通过动态变量的方式引入需要包含的文件。 2、用...

cldimd的博客 8274

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文件包含漏洞全面详解

文件包含漏洞是一种注入型漏洞,允许攻击者通过控制包含文件路径执行任意代码。PHP中常见包含函数包括include()、require()等,漏洞成因多为未对用户输入过滤。利用方式包括本地文件包含(LFI)读取敏感文件、配合文件上传解析恶意文件、包含日志或Session文件等。远程文件包含(RFI)在allow_url_include开启时可加载远程恶意文件。PHP伪协议(如php://filter、data://)可绕过限制读取源码或执行代码。防护措施包括输入过滤、配置open_basedir、升级PHP版

布丁讲安全的博客 1828

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 上传验证绕过——服务端内容检查绕过
下一篇: SSRF原理及漏洞演示
梓桐sama
博客等级 码龄8年 22粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值