iwebsec-文件包含 02 本地文件包含绕过

发布时间 2023-08-20 10:38:15作者: 别打扰我摸鱼

01、题目分析

程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,

直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为文件包含。

在包含文件的过程中,如果文件能进行控制,则存储文件包含漏洞

02、文件包含

这一题,emmm,没啥好说的,直接告诉答案了,在服务器的本机就有一个test.txt文件,内容就是phpinfo(),在02.php这个文件中,有include()函数,直接就将访问值传递的参数当作php文件进行执行,但是这里根据代码分析,有一个将文件名加上.html后缀的功能,正常使用文件包含行不通

image

因此我们尝试%00截断

image

http://www.bdrwmy.cn:8001/fi/01.php?filename=test.txt%00

image

03、源码分析

<?php
	if(isset($_GET['filename'])){ // 检查是否设置了 'filename' 参数
	    $filename  = $_GET['filename']; // 获取 'filename' 参数的值,并赋给 $filename 变量
	    include($filename . ".html"); // 包含指定的文件内容,文件名为参数值拼接上 ".html" 后缀
	}else{
		exit(); // 如果未设置 'filename' 参数,则退出脚本执行
	}
?>