IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> WEB漏洞—文件包含漏洞 -> 正文阅读

[PHP知识库]WEB漏洞—文件包含漏洞

介绍

所谓文件包含漏洞,故名思意,就是在文件中包含(引用)了其他文件所导致的漏洞。例如有些函数在不同代码中的作用都是相同的,在这里我们可以称呼它为“变量”,那么这时程序员就会将该“变量”放在一个文件中,在其他代码中引用该变量文件即可。
当这种灵活性通过动态变量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做合理的校验或者校验被绕过就造成了文件包含漏洞。
在这里插入图片描述

在这里插入图片描述
脚本利用
我们先创建一个带有文件包含脚本的PHP文件放在服务器上,代码如下

<?php
$filename=$_GET['filename'];
include($filename);
?>

这时我又在同一目录下创建了一个a.txt文件
内容就一句:<?php phpinfo();?>
在这里插入图片描述
当我在浏览器中访问test.php文件时,里面的变量?filename=a.txt。
在这里插入图片描述可以看出,a.txt里的内容是以PHP脚本执行的。

对文件包含的检测

白盒可以通过代码审计
黑盒可以通过扫描工具扫出、可以利用网上公开的漏洞、还可以手工去尝试包含检测

文件包含类型

分为本地包含远程包含,也可以分为有限制无限制类型
所谓有限制就是在利用该漏洞时有一定的干扰,而无限制则可以直接包含(上面的脚本利用就是无限制)
在这里插入图片描述
像这样就是有限制的,这里就只能指向html文件。

但是我们可以通过“%00”去将后面.html代码截断,“a.txt%00”即可正常访问
在PHP中,这个%00的使用有两个条件
1.magic_quotes_gpc=off
2.PHP版本<5.3.4
若不满足这两个条件,则无法使用该截断

还有一种方法,可以利用长度截断
在Windows中文件命令长度256,Linux中文件命名长度4096。
当文件名长度超过服务器命名长度数值,则后面的.html也不会生效。

在这里插入图片描述
危险更大的是远程包含
在phpinfo中我们可以查看“allow_url_include”来判定是否有远程包含
在这里插入图片描述
状态为“On”的话就可以包含远程服务器的文件去执行了
在这里插入图片描述
远程包含如果有限制,我们可以通过在代码后加入相关干扰字符尝试去绕过,如%20、%23、?等
在这里插入图片描述

各种协议流玩法

伪协议用法:https://segmentfault.com/a/1190000018991087
在这里插入图片描述如果 PHP 的配置选项 allow_url_include、allow_url_fopen 状态为 ON 的话,则include/require 函数是可以加载远程文件的,这种漏洞被称为远程文件包含漏洞(RFI)

file://+路径:将文件以脚本执行
data://
php://filter 可以在执行代码前将代码换个方式读取出来,只是读取,不需要开启,
读取源代码并进行 base64 编码输出,不然会直接当做 php 代码执行就看不到源代码
内容了
php://input?test=php://input 【post data】<?php phpinfo();?>

春秋靶场web include练习

进入后是这个页面,一串代码加上phpinfo信息
在这里插入图片描述
代码分析

<?php 
show_source(__FILE__);//文件高亮
if(isset($_REQUEST['path'])){//isset — 检测变量是否已声明并且其值不为 null
    include($_REQUEST['path']);//包含变量‘path’请求的文件
}else{
    include('phpinfo.php');//否则展示phpinfo.php这个文件
}

由上可知,存在phpinfo.php这个文件在,所以我们尝试访问下此文件
在这里插入图片描述没问题
既然是文件包含漏洞,我们查看下phpinfo中的allow_url_include是否为On
在这里插入图片描述这样的话我们尝试利用上面说的伪协议,去读取相关信息
用php://input+POST【php脚本】试试
在这里插入图片描述可以看到这里含有三个文件,很明显‘dle345aae.php’这个文件就是我们通过的flag文件
访问它试试
在这里插入图片描述
好像什么都没有爆出,不急,看看网页源代码
在这里插入图片描述
flag出现了

防御手段

  1. 将包含文件固定,不要设置为变量。
  2. 如果有设置变量的必要,那么最好固定文件后缀,如.html
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 11:40:17  更:2022-01-28 11:41:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 5:14:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计