PHP文件包含漏洞

一.常见文件包含函数:
include()、require()、include_once()、require_once()
函数中包含的新文件会作为PHP代码执行

1.include():找不到包含的文件会产生警告,脚本继续执行

2.require():找不到包含的文件会产生错误并停止脚本,直接退出

3.include_once()、require_once():和include()、require()的区别是不会重复包含文件

二.文件包含漏洞类型:

1.本地文件包含
(1)目录遍历:通过…/…/读取任意文件内容(可以通过编码形式绕过)
(2)%00截断:php基于c语言,以0字符结尾,所以可以通过%00截断字符串
(3)长目录截断:利用最大目录长度的限制进行截断(windows目录最大长度为256字节,linux为4096字节)

2.远程文件包含:PHP的配置选项allow_url_include为On时,文件包含函数可以加载远程文件,可以在URL中写入目标文件地址,上传一句话木马,从而获取网站目录

   <?php @eval($_POST['attack']) ?>

三.PHP伪协议

1.php://filter:过滤筛选文件

php://filter/resource=

(1)非PHP语法文件include失败,直接输出源码内容
(2)PHP语法文件需要先base64编码,使文件不被认为是PHP文件,输出文件内容的base64编码

php://filter/read=convert.base64-encode/resource=

2.php://input:访问原始数据,将post请求中的数据作为PHP代码执行

3.php:zip://:访问压缩文件中的子文件,并使用%23分隔分隔压缩包和压缩包里的内容,不管文件后缀是什么,都会当做压缩包来解压

在这里插入图片描述
(表格为转载)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值