PHP:文件包含漏洞
简单记录一些文件包含漏洞的常用方法
产生原因:
文件包含漏洞的产生原因是在通过引入文件时,由于传入的文件名没有经过合理的校验,或者校检被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。
常见的导致文件包含的函数如下:
PHP: include(), include_once(), require(), require_once(), fopen(), readfile() ...
当使用前4个函数包含一个新的文件时,该文件将作为 php 代码执行,php 内核不会在意该被包含的文件是什么类型。
本地文件包含(LFI):
当被包含的文件在服务器本地时,就形成的本地文件包含漏洞。我们可以通过该漏洞读取服务器文件,并执行包含php代码的文件。以DVWA为例:
我们成功读取了php探针文件。而本地文件包含在遇到过滤的情况下也需要一些绕过方法,比如%00截断,点号截断等。
%00截断:
`/etc/passwd%00`
(需要 magic_quotes_gpc=off,PHP小于5.3.4有效)
%00截断目录遍历:
`/var/www/%00`
(需要 magic_quotes_gpc=off,unix文件系统,比如FreeBSD,OpenBSD,NetBSD,Solaris)
路径长度截断:
`/etc/passwd/././././././.[…]/./././././.`
(php版本小于5.2.8(?)可以成功,linux需要文件名长于4096,windows需要长于256)
点号截断:
`/boot.ini/………[…]…………`
(php版本小于5.2.8(?)可以成功,只适用windows,点号需要长于256)
修复方案:
限制用户访问区域,并校验和过滤用户传入的参数。
远程文件包含(RFI):
这里注意一下,当我们远程服务器上的文件为xx.php与xx.txt时,存在远程文件包含漏洞的服务器在执行这两个文件时结果是不同的,以DVWA为例:
这是xx.txt文件执行phpinfo后所显示的ip。
这是xx.php执行phpinfo后的ip地址。
这说明远程文件包含漏洞所包含的文件为非php后缀才是正确的,因为当后缀名为php结尾的文件被执行时实在攻击者本机上执行的,而非php后缀的文件实在受害机上执行的。
PHP的部分常用伪协议:
* file 协议读取本地文件:`file=file://etc/passwd`
(需要allow_url_fopen=On并且 allow_url_include=On)
* 利用php流input:`?file=php://input`
(需要allow_url_include=On,详细→http://php.net/manual/en/wrappers.php.php)
* 利用php流filter:`?file=php://filter/convert.base64-encode/resource=index.php`
(同上)
* 利用data URIs:`?file=data://text/plain;base64,SSBsb3ZlIFBIUAo=%00`
(需要allow_url_include=On)
当网站存在本地文件包含漏洞和上传漏洞时我们可以配合两个漏洞GETSHELL。
任重而道远,共勉!
PHP:文件包含漏洞的更多相关文章
- PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)
摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...
- phpmyadmin任意文件包含漏洞分析(含演示)
0x01 漏洞描述 phpmyadmin是一款应用非常广泛的mysql数据库管理软件,基于PHP开发. 最新的CVE-2014-8959公告中,提到该程序多个版本存在任意文件包含漏洞,影响版本如下: ...
- PHP文件包含漏洞剖析
一. 什么才是”远程文件包含漏洞”?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. ...
- Nagios Looking Glass 本地文件包含漏洞
漏洞名称: Nagios Looking Glass 本地文件包含漏洞 CNNVD编号: CNNVD-201310-682 发布时间: 2013-10-31 更新时间: 2013-10-31 危害等级 ...
- WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞
漏洞名称: WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞 CNNVD编号: CNNVD-201310-642 发布时间: 2013 ...
- 百度杯”CTF比赛 2017 二月场 没错!就是文件包含漏洞。
题目源码: 文件包含漏洞的话,看一下 你么可以使用php://input 伪协议,执行代码(参考了大佬WP)这里使用了POSTMAN, 目录下还有一个dle345aae.php文件,呢么用cat命令打 ...
- phpMyAdmin 4.8.x 本地文件包含漏洞利用
phpMyAdmin 4.8.x 本地文件包含漏洞利用 今天ChaMd5安全团队公开了一个phpMyAdmin最新版中的本地文件包含漏洞:phpmyadmin4.8.1后台getshell.该漏洞利用 ...
- php安全开发(1)文件包含漏洞
开发过程总结的漏洞: 一,,如何造成包含漏洞:在通过函数包含文件时,由于没有对包含的文件名进行有效的过滤处理,被攻击者利用从而导致了包含了Web根目录以外的文件进来,就会导致文件信息的泄露甚至注入了恶 ...
- 易酷 cms2.5 本地文件包含漏洞 getshell
易酷 cms2.5 本地文件包含漏洞 getshell 首先下载源码安装(http://127.0.0.1/test/ekucms2.5/install.php) 安装成功直接进行复现吧 本地包含一 ...
- Kali学习笔记31:目录遍历漏洞、文件包含漏洞
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 目录遍历漏洞: 应用程序如果有操作文件的功能,限制不严 ...
随机推荐
- 用python实现实时监控网卡流量
很多时候,我们是需要查看服务器的网卡当前跑了多大流量,但对于网卡流量的查询,在linux下似乎没有像top那样的原生命令.虽然top功能很强大,可以实时查看cpu.内存.进程的动态,但是却没有对网卡流 ...
- play ball小游戏-Alpha版本发布说明
Alpha版本发布说明 一.功能介绍 本团队所做的微信小程序是一款小球经碰撞后最终到达目的位置通关的休闲益智类游戏.Alpha版本具有的功能大体如下: 1. 闯关模式 多达12关普通竖屏关卡.4关特殊 ...
- Federated Learning with Matched Averaging
挖个坑吧,督促自己仔细看一遍论文(ICLR 2020),看看自己什么时候也能中上那么一篇(流口水)~ 郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 联邦学习允许边缘设 ...
- springboot的常用注解
1. @SpringBootApplication2. @Repository3. @Service4. @RestController5. @Controller6. @Component7. @R ...
- Java多线程同步_synchronized
1.synchronized是什么?synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种:1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起 ...
- C/C++经典面试题1,const关键字用法总结
本文主要说明了const关键字的作用,包括了用于对数组,指针与类相关的修饰方法,作为笔记总结使用.若有错误与不足,欢迎指正. const关键字 用于修饰一个常类型,常类型的变量或对象的值无法被改变,即 ...
- Java GUI 图书管理系统
01 概述 一款功能强大的图书馆管理系统,功能齐全,小白/大学生项目实训,学习的不二之选. 02 技术 此系统使用 java awt 实现.java.awt是一个软件包,包含用于创建用户界面和绘制图形 ...
- 基于 GitBook 搭建个人博客
目录 基于 GitBook 搭建个人博客 1.为什么要写博客? 2.为什么选择使用 GitBook 来搭建? 3.搭建方式 3.1 GitBook 线上直接搭建 3.2 由基于Node.js的命令工具 ...
- C语言如何动态分配二维数组
C语言如何动态分配二维数组(转载) 原文链接:https://www.cnblogs.com/0xWitch/p/9314621.html 使用malloc().free()函数进行动态分配,这两个函 ...
- 手写迷你Tomcat
手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat ...