【AH_training】 文件包含漏洞

本文深入探讨了PHP文件包含漏洞,包括基础概念、利用方法和常见限制绕过策略。文件包含漏洞允许攻击者通过动态调用恶意文件获取敏感信息或执行代码。讲解了本地文件包含、任意文件读取、包含上传文件、PHP伪协议的利用,以及前缀和后缀绕过方法。同时,提到了目录遍历、PHP内置协议在绕过限制中的应用。
摘要由CSDN通过智能技术生成

3.文件包含漏洞:

​ 1.直接包含服务器上的文件来达到文件泄露的目的。

​ 2.包含图马,包含日志等已经存在的文件去进行一些绕过。

​ 3.配合上传文件进行一些包含

​ 4.配合伪协议进行包含。

​ 5.当存在限制时,根据前缀绕过和后缀绕过选择对应的目录穿越和伪协议。

3.1文件包含基础:

3.1.1什么是文件包含?

在这里插入图片描述

文件包含是为了代码复用。

3.1.2 PHP文件包含函数:

在这里插入图片描述

3.1.3什么是文件包含漏洞?

开发者为了代码灵活性将被包含的文件设置为变量,进行动态调用,但灵活性导致了客户端可以调用一个恶意文件,造成文件包含漏洞。

通过PHP函数引入文件时,传入的文件名没有经过合理的验证,从而操作了预想外的文件,就可能导致意外的文件泄露甚至恶意代码注入。

3.1.4 文件包含分类:

在这里插入图片描述

大部分都是本地文件包含。

3.1.5文件包含环境说明:

在这里插入图片描述

3.2 本地文件包含利用方法

3.2.1任意文件读取: 图马

在包含PHP代码时,代码得到执行;若不是则以字符串方式直接显示。

file://与直接包含

在这里插入图片描述

file=/etc/passwd file=file:///etc/passwd(file协议)

3.2.2 包含上传文件:

将想要执行的代码文件放在被包含文件中,进而得到执行。

在这里插入图片描述

3.2.3 包含日志文件:

在这里插入图片描述

apache日志文件默认存放位置:/var/log/apache2

网站运行使用www的用户服务,没有权限去读取日志文件,一般日志文件网站是无法包含的,若有则必定是它。

3.2.4 PHP伪协议

PHP提供了一些杂项I/O流,允许访问PHP的输入输出流、标准输入输出和错误描述符,内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。

1. ?file=php://input

在这里插入图片描述

2. ?file=php://filter

对于flag.php这个文件本来是无法获取其具体内容的,读取时会直接读取“flag.php”这句代码,但是通过过滤器可以规定其编码格式,读取文件内的具体代码。

在这里插入图片描述

3. zip://

可以用来绕过检测。

在这里插入图片描述

4. phar://

类似zip://
​ linux中可以将一个目录打包成一个文件,可以通过phar://这一伪协议不解压直接访问,比如访问jpg文件中的一个文本txt文件。

​ 在反序列化中有更大的利用。

在这里插入图片描述

5. data://

		类似php://input   要求比较严格

​ ?file=data://text:/plain,<?php phpinfo(); <?php phpinfo()为要包含的内容。

在这里插入图片描述

3.3 常见限制绕过方法:

3.3.1 前缀绕过

目录遍历:

当在包含文件时有限制,只能访问特定目录下的文件,伪协议是不能用的,因为伪协议规定从开头就出现,而要访问特定目录路径下的文件就不可用了。

使用…/…/来返回上一级目录, 目录穿越 …/代表父级目录

如:?file=…/…/phpinfo/phpinfo.php

3.3.2 后缀绕过

利用协议:

前面部分得到解放就可以使用伪协议的部分,利用zip://和phar://

若只能包含一个php文件,但服务器上无法使用php木马,只能上传一个jpg文件,对于zip文件修改后缀为zip.jpg上传上去再用zip这样一个协议包含jpg文件下面一个php文件。

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值