一、文件包含漏洞

原理

    文件包含漏洞是“代码注入”的一种。其原理就是注入一段用户能控制的脚本或代码,并让服务端执行。“代码注入”的典型代表就是文件包含。文件包含漏洞可能出现在JSP、PHP、ASP等语言中,原理都是一样的。    

文件包含漏洞进行攻击,必须满足以下两个条件:

  1. Web应用采用include()等文件包含函数通过动态变量的方式引入需要包含的文件;
  2. 用户能够控制该动态变量。

在PHP中,有四个用于包含文件的函数,当使用这些函数包含文件时,文件中包含的PHP代码会被执行。下面对它们之间的区别进行解释:

  • include(): 当使用该函数包含文件时,只有代码执行到include()函数时才将文件包含进来,发生错误时只给出一个警告,继续向下执行。
  • include_once(): 功能和include()相同,区别在于当重复调用同一文件时,程序只调用一次。
  • require(): 1.require()与include()的区别在于require()执行如果发生错误,函数会输出错误信息,并终止脚本的运行。2.使用require()函数包含文件时,只要程序一执行,立即调用文件,而include()只有程序执行到该函数时才调用。
  • require_once(): 它的功能与require()相同,区别在于当重复调用同一文件时,程序只调用一次。

分类

  1. 本地文件包含LFI(Local File Inclusion)当被包含的文件在服务器本地时,就形成本地文件包含。
  2. 远程文件包含RFI(Remote File Inclusion)当被包含的文件在第三方服务器时,叫做远程文件包含。

二、攻击实战

一、low级别

基础环境配置(low)

靶场:DVWA

安全等级:Low

界面:文件包含攻击

依次点击页面,我们发现可以读出不同的相关系统信息,侧面说明这三个文件含有读取相关系统信息的脚本代码。并且在URL显示了http://192.168.146.50/DVWA/vulnerabilities/fi/?page=  后就是被包含的文件名

通过点击file3,我们发现当前Web服务器使用的Windows,我们将URL中的文件名替换为:

C:/Windows/System32/drivers/etc/hosts

可以通过该方法进行访问hosts文件中的内容

使用相对路径../../phpinfo.php来替换URL中的包含文件名,可以执行DVWA程序自带的phpinfo信息(../代表当层目录的上层目录)。当前目录是/DVWA/vulnerabilities/fi,返回两层就可以回到DVWA。因此../../phpinfo.php代表/DVWA/phpinfo.php

在kali环境下,我们搭建一个Web服务,演示的地址为:192.168.146.110,在Web根目录下写入一个shell.php文件。用来显示PHPINFO。

1.进行/var/www/html

2. 开启apache服务 sudo service apache2 start

3.编写shell服务,里面内容:<? php phpinfo();?>

PHP默认不允许跨域引用URL,需要在PHP设置中开启。按照图片步骤:

成功访问到phpinfo()

二、medium级别

 环境配置(medium)

靶场:DVWA

安全级别:medium

攻击界面:文件包含攻击

依次点击页面,我们发现可以读出不同的相关系统信息,侧面说明这三个文件含有读取相关系统信息的脚本代码。并且在URL显示了http://192.168.146.50/DVWA/vulnerabilities/fi/?page=  后就是被包含的文件名

观察源代码,发现使用str_replace()函数把http:// 、https:// 、..\ 替换为了空值,防止远程文件包含和相对路径的包含,但是str_replace 函数不安全,只做一次替换,但是我们在http:中再嵌套一个http://则可以绕过机制;另外,并没有没有绝对的文件包含进行防护。

使用绝对路径来进行文件包含,不受任何影响

使用绝对路径进行文件包含,需要在../中多嵌套一个../,在URL中输入包含的文件名为..././..././phpinfo.php

使用远程文件包含,需要在http://中多嵌套一个http://;在URL中输入包含的文件名http://tp://192.168.146.110/shell.php

Web安全——文件包含漏洞相关推荐

  1. Web安全—文件包含漏洞(RFILFI)

    文件包含函数(RFI&LFI) ASP和JSP只能实现本地文件包含,PHP既可以本地文件包含也可以远程文件包含 1,文件包含漏洞简介: 在日常的应用开发中,开发者会将常用的功能模块单独实现,然 ...

  2. Web安全之文件包含漏洞

    什么是文件包含 程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件.而无需再次编写,这种 文件调用的过程一般被称为文件包含. 例如:include "conn ...

  3. test.php.bak,记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)

    题目很简单,一个滑稽 打开源码,发现存在source.php文件 于是访问文件,发现出现一串php源码 提示存在hint.php,于是访问发现一句话 flag not here, and flag i ...

  4. Web安全:文件包含漏洞测试(防止 黑客利用此漏洞.)

    Web安全:文件包含漏洞测试. 文件包含的漏洞是  程序员在开发网站的时候,为了方便自己开发构架,使用了一些包含的函数(比如:php开发语言,include() , include_once() , ...

  5. 【web安全】文件包含漏洞

    目录 1.什么是文件包含漏洞 2.产生原因 3.文件包含的类型 3.1本地文件包含 3.2远程文件包含 4.攻击利用手法 4.1 file:协议 4.2 php://协议 ​4.3 zip://,bz ...

  6. WEB漏洞—文件包含漏洞

    介绍 所谓文件包含漏洞,故名思意,就是在文件中包含(引用)了其他文件所导致的漏洞.例如有些函数在不同代码中的作用都是相同的,在这里我们可以称呼它为"变量",那么这时程序员就会将该& ...

  7. WEB渗透之文件包含漏洞

    1.文件包含 1.1原理: 服务器执行的php文件中可能包含木马文件或者恶意代码 1.2漏洞产生原因 1.web采用include()等文件包含函数通过动态变量的方式引入需要包含的文件 静态包含使用i ...

  8. Web漏洞之文件包含漏洞

    公众号:黑客菌 分享更多技术文章,欢迎关注一起探讨学习 一.文件包含漏洞概述 1.漏洞介绍 程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这种文件 ...

  9. WEB安全基础-文件下载漏洞以及文件包含漏洞演示

    这个是下面演示的源码,看链接地址找对应文件 http://download.csdn.net/download/qq78442761/10224681 文件下载漏洞 登进网站后运行截图如下: 点击下载 ...

最新文章

  1. Linux TCPIP内核参数优化
  2. Java批量生成数据库测试数据
  3. Android开发之自定义view绘制坐标位置出错的问题解决
  4. 教你如何创建一款属于自己的VSCode主题
  5. python安装caffe_Caffe安装笔记二:Caffe安装过程
  6. C#使用StreamReader类读取文件文件
  7. html中input描述,input的type值类型和描述-HTML
  8. 包无法安装_BiocManager无法安装R包
  9. 科学技术的不完备性及其实践意义
  10. Matlab-16QAM调制与解调 16-QAM星座点图 16-QAM在AWGN信道下的误码率和误比特率性能,仿真值与理论值曲线对比图
  11. Arch 安装 deb
  12. 《中国近代史纲要》思维导图复习版
  13. 奉劝各位应届毕业生,该打造你的技术影响力了,只会抄代码,该怎么办?
  14. 外贸七日通 第六日 合作篇 与货代打交道
  15. 微信小程序的模板消息与小程序订阅消息
  16. 可恶的Freez Screen Video Capture,软破解之
  17. Switch组件的使用
  18. C++ strcpy、strcat、strcmp和strlen的实现
  19. 浙江大学计算机学院 潘刚,潘刚 - 江苏科技大学 - 生物技术学院
  20. 今天接到东南融通的面试电话,请问下个人一些具体情况

热门文章

  1. 计网 | PGP协议实验(邮件加密解密)
  2. 神经网络与机器学习 pdf 全文内容详细分享
  3. Linux下重要日志及查看方式
  4. java hasnext_Java扫描仪的hasNext()方法与示例
  5. 国内外常用数据库介绍
  6. 【Linux】exec()系列函数——execl(),execlp(),execle()等的区别
  7. git基本命令及核心
  8. 2022第四届长安杯电子取证竞赛 服务器赛时思路题解 Zodi4c
  9. 超像素分割与超像素合并/区域合并/多尺度分割
  10. 深度可分离卷积(计算过程及代码实现)