1.Local File Include

打开网页

 

文件包含漏洞,参考知乎专栏https://zhuanlan.zhihu.com/p/540864302

随着网站的业务的需求,程序开发人员一般希望代码更加灵活,所以将被包含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做合理的校检或者校检被绕过就造成了文件包含漏洞。

大多数Web语言都支持文件包含操作,其中PHP语言所提供的文件包含功能太强大、太灵活,也就导致文件包含漏洞经常出现在PHP语言中。这里就以PHP语言为例,需要打开一下配置allow_url_fopen=On(默认为On) 规定是否允许从远程服务器或者网站检索数据。allow_url_include=On(php5.2之后默认为Off) 规定是否允许include/require远程文件。

PHP中提供了四个文件包含的函数:

include()当使用该函数包含文件时,只有代码执行到include()函数时才将文件包含进来,发生错误时只给出一个警告(E_WARNING),继续向下执行

include_once()功能与Include()相同,区别在于当重复调用同一文件时,程序只调用一次

require()与include()的区别在于require()执行如果发生错误(E_COMPILE_ERROR),函数会输出错误信息,并终止脚本的运行。

require_once()功能与require()相同,区别在于当重复调用同一文件时,程序只调用一次。

nighcight_file()、show_source()函数对文件进行语法高亮显示,通常能看到源代码。

readfile()、file_get_contents()函数读取一个文件,并写入输出缓冲。 fopen()函数打开一个文件或者url。

JSP/Servlet:ava.io.File()、Java.io.FileReader()、<jsp:include page=""/>和<%@include file=""%>

ASP:include file、include virtual

本地文件包含

本地文件包含漏洞指的是能打开并包含本地文件的漏洞,大部分情况下遇到的文件包含漏洞都是LFI,简单的测试用例如下所示。

<?php
    $filename = $_GET['filename'];
    if(isset($filename)){
        include("$filename");
    }else{
        echo "file not found!";
    }
?>

远程文件包含

远程文件包含漏洞是指能够包含远程服务器上的文件并执行。由于远程服务器的文件是我们可控的,因此漏洞一旦存在危害性会很大。

该类型需要当目标服务器开启一定配置时才可以使用,当php.ini中的配置选项allow_url_fopen=on、allow_url_include=on

 

因为文件路径可控,当输入系统的密码文件所在路径时,内容会输出出来,构造file伪协议读取flag文件

 2.burpsuite爆破

kali自带字典

https://blog.csdn.net/qq_43093288/article/details/130360951

用kali自带的这些字典,可以爆破简单的用户名和密码

先爆破用户名,发现用户名为admin

 得到密码为四位数字,开始纯数字爆破

 得到密码