首页 > 编程语言 >【PHP代码审计】文件包含漏洞

【PHP代码审计】文件包含漏洞

时间:2024-10-08 13:49:50浏览次数:7  
标签:审计 文件 include 包含 require 漏洞 ini conf PHP

文件包含原理

文件包含是因为服务器端某些程序对用户提交参数过滤不当造成的该程序一般具有以读取方式输出文件内容或者下载文件,前者也可以叫做任意文件读取,两者本质上是一样的。通常在以下情况下存在该漏洞。

文件包含函数

include()
include_once()
require()
require_once()
fopen()
readfile()

include和require区别

include在包含的过程中如果出现错误,会抛出一个警告,程序继续正常运行;而require函数出现错误的时候,会直接报错并退出程序的执行。

include_once()和require_once()区别

与前两个的不同之处在于这两个函数只包含一次,适用于在脚本执行期间同一个文件有可能被包括超过一次的情况下,你想确保它只被包括一次以避免函数重定义,变量重新赋值等问题。

本地文件包含

假如用户参数可控,那么通过可控参数的值来读取文件。如etc/passwd等等

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

远程文件包含

如果PHP的配置选项allow_url include为ON的话,则include/require函数是可以加载远程文件的,这种漏洞被称为远程文件包含漏洞。

条件 win.ini中设置

allow_url_fopen   on
allow_url_include on

demo

<?php
$file = $_GET['file'];
require_once $file .'/action/share.php';

?>

常见的敏感文件路径

Windows系统:


c:\boot.ini // 查看系统版本
c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件
c:\windows\repair\sam // 存储Windows系统初次安装的密码
c:\ProgramFiles\mysql\my.ini // MySQL配置
c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root密码
c:\windows\php.ini // php 配置信息

Linux/Unix系统:

/etc/passwd // 账户信息
/etc/shadow // 账户密码文件
/usr/local/app/apache2/conf/httpd.conf         // Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf // 虚拟网站配置
/usr/local/app/php5/lib/php.ini //PHP相关配置
/etc/httpd/conf/httpd.conf // Apache配置文件
/etc/my.conf // mysql 配置文件

标签:审计,文件,include,包含,require,漏洞,ini,conf,PHP
From: https://www.cnblogs.com/o-O-oO/p/18451493

相关文章

  • 【PHP代码审计】危险函数
    什么是危险函数?函数设计出来就是让人使用的,之所以危险,是因为其功能过于强大,开发人员特别是刚从业的人员很少会完整阅读完整个文档,再或者是没有意识到当给这些函数传递一些非常规的,外部可控的参数会带来什么影响。$GET//数组,存放着所有通过URL参数传递的数$POST//数组,......
  • 【PHP代码审计】过滤函数
    一、SQL过滤函数addslashes()stripslashes()addcslashes()stripcslashes()mysql_escape_string()mysql_real_escape_string()PHP魔术引号Addslashes()返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号()、双引号(”)、反斜线()......
  • phpvulhunter工具:静态 php 代码审计
    phpvulhunter是一款PHP源码自动化审计工具,通过这个工具,可以对一些开源CMS进行自动化的代码审计,并生成漏洞报告。1、安装首先从github上进行获取:gitclonehttps://github.com/OneSourceCat/phpvulhunter2、下载完成后,将工程目录放置于WAMP等PHP-Web运行环境中即可。访......
  • PhpStrom2024.1永久激活及激活过程中出现的问题
    PhpStrom2024.1及激活工具下载激活工具:https://www.alipan.com/s/Aj5EEMxgLZCPhpStrom:https://www.alipan.com/s/cx69krtGXaw PhpStrom安装与激活1、下载并根据提示安装PhpStrom2、下载激活工具并将文件夹放在常用位置(文件夹名称与文件夹路径不可有中文)3、打开scripts文件......
  • ICMP timestamp请求响应漏洞CVE-1999-0524解决方法
    ICMPtimestamp请求响应漏洞CVE-1999-0524解决方法1、添加进和出的规则firewall-cmd--permanent--direct--add-ruleipv4filterINPUT0-pICMP--icmp-typetimestamp-request-mcomment--comment"denyICMPtimestamp"-jDROPfirewall-cmd--permanent--direct--ad......
  • Linux--审计工具Audit
    一、简介Linux审计系统提供了一种方式来跟踪系统上与安全相关的信息,根据预配置的规则,审计会生成日志条目,来尽可能多地记录系统上所发生的事件的相关信息。对于关键任务环境而言至关重要,可用来确定安全策略的违反者及其所执行的操作,便于在发生网络入侵等安全事件时,能够为追踪溯源......
  • php网站登录密码忘记了的三种解决办法
    如果你忘记了PHP网站的登录密码,可以通过以下三种方法来解决这个问题:1.通过数据库直接修改密码步骤如下:登录数据库:使用命令行工具(如 mysql 或 phpMyAdmin)登录到数据库。例如,通过命令行登录MySQL数据库:mysql-uroot-p选择对应的数据库:选择包含用户表......
  • phpinfo函数的作用
    phpinfo() 函数是PHP中的一个内置函数,主要用于显示关于PHP配置的各种信息。这些信息包括PHP版本、已加载的扩展、环境变量、HTTP头信息、目录路径设置等。这对于调试和了解当前PHP运行环境非常有用。作用包括:显示PHP的版本号。列出所有已启用的扩展及其版本信息......
  • SRC漏洞挖掘----信息搜集
    信息搜集插件推荐:shodan,findsomething,retire.js,hacktool,FoFaProviewSRC漏洞挖掘之信息搜集资产搜集的网站:zoomeye,fofa(收费),360网络空间测绘系统-360数字安全(免费)1.FOFA语法学习介绍:FOFA(FingerprintingOrganizationswithAdvancedTools)是一家总部位于中国的网络安全公......
  • 网站数据库配置文件config.php
    在开发Web应用时,通常会有一个专门用于配置数据库连接信息的文件,例如config.php。这个文件主要用于存储数据库的连接参数,以便在整个应用程序中重用。下面是一个简单的config.php示例,展示了如何定义数据库连接的基本信息:<?php//数据库配置文件//数据库类型define('DB_TYPE......