loader image

文件包含简介

何为文件包含


文件包含其实非常的常见,许多编程语言里面都有文件包含的功能,像C语言中就用#include<stido.h>使用include引入,在python中import requests通过import引入,文件包含也可以称为引用

php中的文件包含函数


  1. include()
  2. include_once()
  3. require()
  4. require_once()

以上include()用的比较多,因为include()引用的程序文件,如果存在错误的话,会继续执行,并且显示一个警告错误,而require()引用的文件中存在错误,就会中止执行,并显示致命错误

而include_once()中的这个once是,会检查这个要引入的这个文件是否已经被引用过了,如果被引用过了则不会再次引用。require_once()中的once同理

综上include()和include_once()是在开发中比较频繁使用的

文件包含配合文件上传


文件上传中我们上传图片马,会采用一些解析漏洞去让服务器将该图片马以脚本文件的形式去执行,同样文件包含漏洞也可以将图片马以脚本文件的形式执行,include 'webshell.jpg'这种方式引入webshell.jpg会以php的脚本文件形式去执行该文件

我们尝试引入webshell.jpg

image.png

webshell.jpg文件中是php代码

image.png

访问效果

image.png

我们尝试引入一张真正的图片

image.png

返回效果并不会以图片的形式,因为他被当作脚本文件执行了

image.png

本地包含


本地包含主要是包含服务器本地的一些文件,比如我们可以包含服务器本地上的一些敏感文件,网站的一些配置文件等等,或者是将本地包含和文件上传两个漏洞配合起来使用。包含既可以使用绝对路径也可以使用相对路径

远程包含


远程包含指的是,要包含的文件并不在我们要攻击的这个服务器上,比如我们要攻击的是A服务器,但是我们将后门文件存放在B这台服务器上,我们可以在A中远程包含B服务器上的后门代码,以达到控制A的目的

两种包含的区别


本地包含,比较好利用

而远程包含,则需要allow_url_include=on并且magic_quotes_gpc=off

8人评论了“文件包含简介”

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top