文件包含漏洞笔记

概述

文件包含漏洞(File Inclusion)是一种最常见的依赖于脚本运行而影响 Web 应用程序的漏洞。当应用程序使用攻击者控制的变量建立一个可执行代码的路径,允许攻击者控制在运行时执行哪个文件时,就会导致文件包含漏洞。如192.168.0.1/xx/?page=info.php,后面的page=info.php如果前后端不对参数做严格的处理,就可能构成文件包含漏洞。本质是在服务器调用文件时,权限处理不当而被攻击者传入其他敏感的文件参数,导致敏感文件被服务器读取或下载,使得敏感信息泄露。

分类

  1. 远程文件包含(RFI,Remote File Inclusion):当 Web 应用程序下载并执行远程文件时,会导致远程文件包含,这些远程文件通常以 HTTP 或 FTP URI 的形式获取,作为Web 应用程序的用户提供的参数。可能获取到shell,钓鱼。
  2. 本地文件包含(LFI,Local File Inclusion):本地文件包含类似于远程文件包含,本地文件包含仅能包括本地文件,即当前服务器上的文件以供执行。充当垫脚石,查看文件。

DVWA靶场绕过

  1. 低级:没做任何处理,payload/etc/passwdhttp://www.xxx.com
  2. 中级:过滤了http://https://../..\\,paylaodhthttp://tp://www.xxx.com/etc/passwd
  3. 高级:参数必须以fileinclude.php开头,payloadfile1.php../../../../../../../../../../../etc/passwdfile:///etc/passwd

修复建议

  1. 严格检查变量是否已经初始化。
  2. 对所有输入提交可能包含的文件地址,包括服务器本地文件及远程文件,进行严格的检查,参数中不允许出现./和…/等目录跳转符。
  3. 严格检查文件包含函数中的参数是否外界可控。

总结

最有效的防护方法是白名单,但是在生产环境下不现实。
获取目标机器shell攻击链:发现文件包含漏洞,往目标机器本地(或远端服务器)文件中写入webshell,利用文件包含的漏洞去包含该文件,看文件中的内容是否能被当成php代码执行。前提条件是知道写入文件的位置,以及写入的文件能被当成php代码执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值