文档详情

《Web应用安全与防护》课件 项目5:文件包含漏洞利用与防护.pptx

发布:2025-02-22约1.8千字共16页下载文档
文本预览下载声明

项目5:文件包含漏洞利用与防护

项目目标知识目标:1.了解文件包含、文件包含漏洞定义2.理解文件包含漏洞的分类、文件包含函数3.掌握文件包含漏洞利用,防范措施能力目标:1.能运用文件包含漏洞获取敏感信息以及加固方法情感目标:1.自主、开放的学习能力2.良好的自我表现、与人沟通能力3.良好的团队合作精神

目录01文件包含漏洞概述02文件包含漏洞利用与防御目录

1.文件包含漏洞概述1.1文件包含在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用包含函数功能,比如会把网页引用的标准页眉(head.php)或菜单文件写进一个文件中,之后某个文件需要调用的时候就直接在文件头中写上一句?phpincludehead.php?.使用文件包含为开发者节省大量的时间。--当页眉需要更新时,您只更新一个包含文件就可以了,或者向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)

1.文件包含漏洞概述1.2文件包含漏洞有些时候,由于网站功能的需求,文件包含的代码文件被写成了一个变量,且这个变量可以由前端用户传进来,由于传入的文件名没有合理的校验,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入,读取系统给敏感文件。

1.文件包含漏洞概述1.3文件包含代码?php$file=$_GET[‘file’];#将参数file的值传递给变量$fileinclude$file;#使用include函数包含文件?原因分析:文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码。

1.文件包含漏洞概述1.4PHP文件包含函数大部分文件包含的漏洞都出现在php的程序中,因PHP语言提供的文件包含功能太强大,太灵活。(1)include():包含过程中如果出现错误,会抛出一个警告,程序继续正常执行。(2)include_once():同include,只包含一次。(3)require():包含过程中如果出现错误,会退出程序的执行。(4)require_once():同require,只包含一次。使用与在脚本执行期间同一个文件有可能被包括超过一次的情况下,你想确保它只被包含一次以避免函数重定义、变量重定义赋值等问题。

1.文件包含漏洞概述1.5文件包含漏洞分类根据不同的配置环境,文件包含漏洞分为如下两种情况:(1)本地文件包含:当被包含的文件在服务器本地(2)远程文件包含:当被包含的文件在远程服务器远程文件包含条件:在php.ini文件中allow_url_fopen=on#默认打开allow_url_include=on#默认关闭

1.文件包含漏洞概述1.5.1本地文件包含用户Webserver:../../php/php.ini(敏感文件/系统配置文件)

1.文件包含漏洞概述1.5.2远程文件包含用户Webserver:远程包含

目录01文件包含漏洞概述02文件包含漏洞利用与防御目录

2.文件包含漏洞利用与防御2.1文件包含漏洞利用1.本地文件包含2.远程文件包含3.文件上传+文件包含综合利用

2文件包含漏洞利用与防御2.2文件包含漏洞防御(1)在功能设计上尽量不要将文件包含函数对应的文件放给前端进行选择和操作(2)过滤各种../../,http://,https://(3)配置php.ini配置文件allow_url_fopen=offallow_url_include=offmagic_quotes_gpc=on(4)通过白名单策略,仅允许包含运行指定的文件,其他的都禁止

小结1.文件包含漏洞的定义、分类2.文件包含漏洞的利用3.文件包含漏洞加固

作业1.利用本地文件包含漏洞读取目标系统敏感文件2.利用文件上传+文件包含漏洞写入webshell

THEEND谢谢!

显示全部
相似文档