第24讲文件包含漏洞原理与利用70课件.pptxVIP

  • 2
  • 0
  • 约2.52千字
  • 约 18页
  • 2025-10-24 发布于陕西
  • 举报

第24讲文件包含漏洞原理与利用70课件.pptx

第24讲文件包含漏洞原理与利用任毅

引言程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这种文件调用的过程一般被称为文件包含。程序在引用文件时,引用的文件名、用户可控的情况、传入的文件名没有经过合理的校验或校验不严,从而操作了预想之外的文件,就有可能导致文件泄漏和恶意的代码注入。

小测试1、什么叫文件包含?你用过文件包含吗?2、学习C语言时,使用什么方式进行文件包含?

学习目标1、能描述文件包含漏洞的概念与相关函数2、能描述Windows与Linux的敏感文件3、能够在DVWA平台的Low级别下利用文件包含漏洞

什么是文件包含?程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这种文件调用的过程一般被称为文件包含。程序在引用文件时,引用的文件名、用户可控的情况、传入的文件名没有经过合理的校验或校验不严,从而操作了预想之外的文件,就有可能导致文件泄漏和恶意的代码注入。程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。几乎所有脚本语言都会提供文件包含的功能,但文件包含漏洞在PHPWebApplication中居多,而在JSP、ASP、ASP.NET程序中却非常少,甚至没有,这是有些语言设计的弊端。在PHP中经常出现包含漏洞,但这并不意味这其他语言不存在。

常见的文件包含函数include()包含并运行制定文件。在出错时产生警告(E_WARNING),基本会继续运行。include_once()在脚本执行期间包含并运行制定文件。与include区别:检查是否被包含过,如果是则不会再次包含。require()包含并运行指定文件。require在出错时产生E_COMPLE_ERROR几倍错误,脚本中止运行require_once()基本完全与require相同与require区别:检查是否被包含过,如果是则不会再次包含。

漏洞示例代码?php$filename=$_GET[filename];include($filename);?以上代码,对$_GET[filename]参数没有经过严格的过滤,直接带入了include()函数,攻击者可以修改$_GET[filename]的值,加载其他文件,执行非预期的操作,由此造成了文件包含漏洞;

常见的敏感文件1、Windows平台c:\boot.ini查看系统版本c:\XXhttpd.confApache配置信息C:\Windows\System32\drivers\etc\hosts名称解析的hosts文件c:\windows\system32\inetsrv\MetaBase.xmlIIS配置文件c:\windows\repair\sam存储Windows系统初次安装的密码c:\ProgramFiles\mysql\my.iniMySQL配置c:\ProgramFiles\mysql\data\mysql\user.MYDMySQLroot密码c:\windows\php.iniphp配置信息

常见的敏感文件2、Linux平台/etc/passwd账户信息/etc/shadow账户密码文件/etc/httpd/conf/httpd.confApache配置文件/etc/my.confmysql配置文件/usr/local/app/apache2/conf/httpd.confApache2默认配置文件/usr/local/app/apache2/conf/extra/httpd-vhost.conf虚拟网站配置/usr/local/app/php5/lib/php.iniPHP相关配置

文件包含漏洞分类(1)本地文件包含漏洞可以包含本地文件,在条件允许时甚至能执行代码读敏感文件,读PHP文件包含日志文件GetShell包含data:或php://input等伪协议若有phpinfo则可以包含临时文件配合上传图片马,然后包含从而GetShell(2)远程文件包含漏洞包含远程的木马或病毒文件,从而GetShell注意:要实现远程文件包含需要allow_url_fopen和allow_url_include都开启

无限制本地文件包含漏洞及利用DVWA平台Low级别下文件包含相关代码:?php//Thepagewewishtodisplay$file=$_GET[page];?上面的代码没有对$_GET[file]参数进行严格的过滤,直接代入到了include中去,攻击者可以传递file参数的值来达到攻击的目的,比如?file

文档评论(0)

1亿VIP精品文档

相关文档