E056-web安全应用-File Inclusion文件包含漏洞进阶

2023-10-18 15:44

本文主要是介绍E056-web安全应用-File Inclusion文件包含漏洞进阶,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

课程名称:

E056-web安全应用-File Inclusion文件包含漏洞进阶

课程分类:

web安全应用

---------------------------------------------------------------------------------------------------------------------------------

实验等级:

中级

任务场景:

【任务场景】

小王再次接到磐石公司的邀请,对该公司旗下网站进行安全检测,经过一番检查发现了该论坛的某个页面依然存在文件包含漏洞,并在服务器上发现一句话木马。反复测试后推测,小王总结了一下网站被上传一句话木马的方法可能是远程包含。为了让公司管理人员彻底的理解并修补漏洞,小王用DVWA情景再现。

任务分析:

【任务分析】

当网站服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件。恶意文件可能是一句话木马也可能是含有一句话木马的文档或者图片,只要访问页面就会在当前页面源文件目录下生成一句话木马。

预备知识:

【预备知识】

PHP文件包含漏洞,就是在通过函数包含文件时,由于没有对包含的文件名进行有效的过滤处理,被攻击者利用从而导致了包含了Web根目录以外的文件进来,就会导致文件信息的泄露甚至注入了恶意代码

当服务器的php配置中,选项allow_url_fopen与allow_url_include为开启状态时,服务器会允许包含远程服务器上的文件,如果对文件来源没有检查的话,就容易导致任意远程代码执行。

str_replace函数,能够对参数进行了一定的处理,将”http:// ”、”https://”、 ” ../”、”..\”替换为空字符,即删除。

文件包含漏洞主要涉及到的危险函数有四个: include():执行到include时才包含文件,找不到被包含文件时只会产生警告,脚本将继续执行。require():只要程序一运行就包含文件,找不到被包含的文件时会产生致命错误,并停止脚本。

include_once()和require_once():若文件中代码已被包含则不会再次包含。

函数的绕过:

可以从上图中看到代码中调用了str_replace函数,利用该函数对page参数进行了一定的处理,将”http:// ”、”https://”、 ” ../”、”..”替换为空字符,减小了一定几率的代码利用,不过还是可以利用双写等措施来绕过替换规则

可以从上图中看到代码调用了fnmatch函数检查page参数,该函数要求page参数的开头必须是file,否则报错。可以利用file协议来绕过防护策略

---------------------------------------------------------------------------------------------------------------------------------

任务实施:

E056-web安全应用-File Inclusion文件包含漏洞进阶

服务器场景:p9_win7-1(用户名:test;密码:123456)

服务器场景操作系统:Windows 7


服务器场景:p9_ws03-1(用户名:administrator;密码:123456)

服务器场景操作系统:Microsoft Windows2003 Server

---------------------------------------------------------------------------------------------------------------------------------

网络拓扑

**************************************************************************************************************

实战复现:

        打开火狐浏览器,在地址栏输入靶机的地址访问网页,使用默认用户名admin密码password登录:

在DVWA页面点击“DVWA Security” 选择难易程度为“high” ,然后点击“Submit” 提交:

点击“File Inclusion”后点击“view_source”查看源代码:

构造链接

http://172.16.1.4/vulnerabilities/fi/?page=file:///C:\phpstudy\WWW\php.ini

可以发现正常显示出php.ini文件内容

以下是其他方法(难易程度自行绕过,以下以low为例)

远程包含一句话木马

点击“File Inclusion”

在本地在本地搭建一个可访问的网站并写好木马脚本

        远程包含木马文件(利用的原理就是畸形解析)访问后网站服务器会在/vulnerabilities/fi目录下生成一个一句话木马:

在网站服务器上查看目录:

大多数上传点是可以上传图片的,图片内容包含muma.txt中的内容就会生成shell.php从而被控制

使用封装协议读取php文件

———————————————————————————————————————————

构建链接

http://172.16.1.4/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=C:\phpstudy\WWW\vulnerabilities\fi\shell.php

访问后会将shell.php的内容用base64密文显示出来

用火狐插件hackbar将密文解码:

'

实验结束,关闭虚拟机。

这篇关于E056-web安全应用-File Inclusion文件包含漏洞进阶的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/233558

相关文章

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

C#中的Converter的具体应用

《C#中的Converter的具体应用》C#中的Converter提供了一种灵活的类型转换机制,本文详细介绍了Converter的基本概念、使用场景,具有一定的参考价值,感兴趣的可以了解一下... 目录Converter的基本概念1. Converter委托2. 使用场景布尔型转换示例示例1:简单的字符串到

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre