网站备案期间打不开,营销型网站的好处,做折扣的网站有哪些,wordpress阿里云安装目录一、文件包含漏洞概述
1.1 什么是文件包含
开发人员将需要重复调用的函数写入一个文件#xff0c;对该文件进行包含时产生的操作。这样编写代码能减少冗余#xff0c;降低代码后期维护难度。
保证网站整体风格统一#xff1a;导航栏、底部footer栏等#xff0c;把这些不…一、文件包含漏洞概述
1.1 什么是文件包含
开发人员将需要重复调用的函数写入一个文件对该文件进行包含时产生的操作。这样编写代码能减少冗余降低代码后期维护难度。
保证网站整体风格统一导航栏、底部footer栏等把这些不会变的东西包含在一个文件中可以保证整体效果的统一和代码量的减少。
1.2 漏洞产生原因
文件包含函数加载的参数没有经过过滤或严格定义可以被用户控制包含其他恶意的文件导致了执行非预期代码
1.3 简单例子 上述例子并没有对filename进行过滤这就导致了可能会上传一些敏感文件产生文件包含漏洞
1.4 PHP中的文件包含函数 二、文件包含漏洞类型及利用 2.1 本地文件包含
本地文件包含Local File InclusionLFI漏洞是一种常见的安全漏洞它允许攻击者通过应用程序的输入来包含服务器上的本地文件。这种漏洞通常发生在应用程序未能正确地清理或验证用户输入时导致攻击者能够访问服务器上的敏感文件如配置文件、源代码文件等。 2.2 本地文件漏洞包含利用方式
直接文件路径引用通过在URL或表单输入中直接指定文件路径尝试访问如/etc/passwd等敏感文件。利用“.”或“..”通过使用“..”来遍历目录访问上级目录中的文件。利用空字节在某些情况下通过在文件名中插入空字节%00或\x00可以绕过对文件名的某些检查。利用URL编码通过URL编码特殊字符如将../编码为%2e%2e/来绕过简单的输入过滤。利用PHP伪协议在PHP中可以通过伪协议如php://filter来读取文件内容。利用服务器配置如果服务器配置不当可能允许执行某些特殊的文件操作如通过expect://伪协议来执行程序。利用文件包含漏洞读取远程文件如果本地文件包含漏洞被限制为只允许包含本地文件尝试利用远程文件包含Remote File InclusionRFI的技巧来间接包含远程文件。
2.3 远程文件包含漏洞
远程文件包含Remote File Include, RFI漏洞允许攻击者包含一个远程服务器上的文件这通常是由于Web应用程序对用户输入过滤不严导致的。
2.4 远程文件包含漏洞利用方式
利用不当配置当服务器的php.ini配置中allow_url_include选项开启时攻击者可以利用这一点包含远程服务器上的文件。这要求远程文件的后缀不是PHP以避免解析冲突 7。无限制远程文件包含如果应用程序没有对包含的文件类型或来源进行限制攻击者可以轻易地包含远程文件并执行其中的代码 7。有限制远程文件包含在存在一些限制的情况下例如只允许包含具有特定后缀的文件攻击者可能需要使用一些技巧来绕过这些限制例如使用URL编码或特殊字符 7。利用PHP伪协议PHP提供了多种伪协议如php://input和data://这些可以用于读取或执行代码。例如php://input可以读取POST请求的数据而data://可以将文本、base64编码的字符串作为数据流 911。利用日志文件如果攻击者能够通过日志文件记录恶意请求并且应用程序包含这些日志文件那么攻击者可以执行日志中记录的PHP代码 9。利用临时文件在某些情况下如果应用程序处理文件上传攻击者可以利用临时文件的生成和删除之间的时间差来包含这些文件 9。利用竞争条件在某些情况下如果应用程序在包含文件之前写入临时文件攻击者可以利用时间差来覆盖该临时文件从而包含恶意代码 9。利用编码和URL技巧攻击者可以使用URL编码或特殊字符来绕过输入过滤例如使用%00截断或使用点号.进行路径遍历 911。利用文件包含与改写文件在某些情况下如果攻击者能够控制包含的文件内容并且应用程序允许写入文件攻击者可以修改现有文件或创建新文件来包含恶意代码 11。利用Session文件如果应用程序使用Session存储用户信息并且Session文件可被包含攻击者可以利用这一点来执行恶意代码
三、文件包含漏洞危害及防御