文件上传漏洞渗透及防御_1 | 学习笔记

简介: 快速学习 文件上传漏洞渗透及防御_1

开发者学堂课程【网络安全攻防 - Web渗透测试文件上传漏洞渗透及防御_1学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/630/detail/9897


文件上传漏洞渗透及防御_1


内容介绍

1.  实验原理

2.  DVWA 文件上传漏洞

3.  低安全级别下的漏洞


一.实验原理

在实验环境准备就绪后,打开渗透测试机,本次渗透测试实验针对的是上传漏洞。

提起文件上传,大家会想到注册论坛时上传头像、文件等,最常见的是上传图像,也可能上传文件或PDF资源。

如果没有对上传信息检测,导致用户上传了代码,这就可能导致用户通过上传代码获得程序的使用权限。

image.png

1、文件上传( File Upload )是大部分 Web 应用都具备的功能,例如用户上传附件、修改头像、分享图片/视频等。最常见的是上传图像,也有可能上传 PDF 文件。

2、正常的文件一般是文档、 图片、视频等, Web 应用收集之后放入后台存储,需要的时候再调用出来返回。

3、如果恶意文件如 PHP、ASP 等执行文件绕过 web 应用,并顺利执行,则相当于黑客直接拿到了 Webshell。传统防火墙无法阻挡这些,举例说明,端口开放就像店铺开门做生意,好人坏人都可以进来。

4、一旦黑客拿到webshell,则可以拿到 Web 应用的数据,删除 web 文件,本地提权,进步拿下整个服务器甚至内网。Webshell 负责控制网站。

例:如果在上传图像的过程中没有设置过滤,会导致程序也会被轻松上传,导致 Web 应用失去控制权。

5、SQL 注入攻击的对象是数据库服务,文件上传漏洞主要攻击 web 服务,实际渗透两种相结合,达到对目标的深度控制。


二.DVWA 文件上传漏洞

首先打开靶机192.168.106.134,看到许多应用,早期应用都带有一定漏洞。

image.png

上图都是靶机,靶机只是为了让用户每一步都得到响应,用户查看的是开发人员才能看到的源码。最常用的靶机有两种,分别是 Damn Vulnerable Web ApplicationDVWA)OWASP Mutillidae Ⅱ。将 DVWA 翻译成中文是糟糕的Web 应用程序,在应用 DVWA 时,注意用户名和密码都是 admin

image.png

登陆后进入上面这一页面,页面左侧每个选项都代表一种漏洞,XSS 开头代表跨站攻击脚本,Upload 代表文件上传,SQL 代表 SQL 注入,CSRF 代表跨站请求伪造,Insecure CAPTCHA 代表文件,这个页面模拟了开发者开发出的糟糕Web程序。

首先进入 Upload,这个选项要求用户上传图像,按常理,用户只需选中图像,上传即可。但是在上传的过程中,如果像下图所示,上传一个 PHP 脚本,也会显示上传成功。

image.png

因为开发者并没有在开发程序时进行检测,导致任意文件都可以被上传上去,包括木马等病毒程序,这种问题就叫做文件上传漏洞。首先文件上传行为本身是正常的,既然开了程序,开发者就是希望用户将文件按规则上传,但如果未检测导致上传了一些木马文件就叫做漏洞,这种漏洞会导致网站数据被修改删除甚至盗用。

如果一句话木马被上传后,通过利用中国菜刀,开发者将丧失使用权限。并不是所有步骤都有这种漏洞,但主站或子站中有任何一步有这些漏洞,程序就将陷入危险。


三.低安全级别下的漏洞

使用这一应用时需注意以下几点。

1. DVWA Security 是靶机的安全级别设置,点击可以设置不同的安全级别,如下图。

image.png

image.png

高级安全级别可以适当过滤文件,但仍有风险

1. View Source 为查看低安全级别时的源代码。

这种源码在正常网页是无法看到的,只是靶机配合查看漏洞。

可以看出,第一第二行源代码中并没有做任何检测,只有上传与提交步骤,是一个非常糟糕的程序。

在这种情况下,将文件路径上传到浏览器,得到一个“密码”在中国菜刀中添加 ARLETC 与文件数据都可以清晰得出,右键选择虚拟终端后,甚至可以链接本机的服务器。

在低安全级别下,可以上传任何形式,任何大小的文件,开发人员在低安全情况下甚至会丧失权限。

而前端源码与后端不同,这种架构过程中,用户只能查看到前端源码,DVWA 中的后端源码是为了方便用户直观查看漏洞而设置的,正常网页源码与 DVWA 不同。

一个客户端请求网站,访问的是静态资源,客户端浏览器进行渲染后会得到各种页面。在 PAP 程序下,收到请求的是NJX,在遇到后缀为 PAP 的程序时,执行后将结果交给 NJX,将 NJX 交给客户端,所以客户端永远看不到动态代码,只能看到静态结果。

总之,客户端无法看到动态结果,在正常情况下右键查看源码只能看到结果,在使用时要注意区分靶机与正常情况。

相关文章
|
自然语言处理 物联网
化学领域的新篇章:大型语言模型的创新应用
【4月更文挑战第20天】LlaSMol项目成功应用大型语言模型(LLMs)于化学研究,创建SMolInstruct数据集,包含14个化学任务和300万个样本。经过微调,LlaSMol模型在多任务上超越GPT-4,展示LLMs在化学领域的潜力。然而,数据准确性和模型泛化性仍是挑战,未来需进一步研究。[论文链接](https://arxiv.org/pdf/2402.09391.pdf)
236 1
|
Java 项目管理 Maven
这你必须知道,如何上传自己的jar包到maven公共远程中央仓库
这你必须知道,如何上传自己的jar包到maven公共远程中央仓库
1302 0
|
存储 监控 数据挖掘
云MES:数字化转型的引擎,企业上云的强力推手
云MES系统与企业上云的紧密合作,使得企业能够更加灵活地应对市场变化,快速响应客户需求。无论是新产品的快速研发与上市,还是生产线的快速调整与优化,云MES系统都能提供强有力的支持,助力企业在激烈的市场竞争中占据先机。
784 10
云MES:数字化转型的引擎,企业上云的强力推手
|
7月前
|
资源调度 JavaScript 前端开发
Pinia 如何在 Vue 3 项目中进行安装和配置?
Pinia 如何在 Vue 3 项目中进行安装和配置?
541 4
|
安全 前端开发 PHP
EdgeOne安全专项实践:上传文件漏洞攻击详解与防范措施
通过本文,我们深入探讨了文件上传漏洞攻击的多种案例和防范措施,以及在搭建攻击靶场时的实际操作。从前端和后端的校验漏洞,到利用Apache配置文件和文件包含漏洞的攻击方式,每一步都展示了安全防护的重要性。 在学习和实践过程中,我们不仅仅关注如何进行攻击,更着重于如何保护自己的服务器免受此类攻击。我们使用了EdgeOne作为一个解决方案的示例,展示了如何利用其提供的防护规则来有效防御文件上传漏洞。 无论是在靶场搭建过程中的细节操作,还是在攻击案例的分析过程中,安全意识和防护措施的实施都显得至关重要。通过本文,希望读者能够更深入地理解和应用这些安全原则,以保护自己的网络和服务器免受攻击的威胁。
|
11月前
|
分布式计算 大数据 BI
ClickHouse与大数据生态整合:从ETL到BI报表
【10月更文挑战第27天】在这个数据驱动的时代,企业越来越依赖于数据来做出关键决策。而高效的数据处理和分析能力则是支撑这一需求的基础。作为一位数据工程师,我有幸参与到一个项目中,该项目旨在利用ClickHouse与Hadoop、Spark、Flink等大数据处理框架的整合,构建一个从数据提取(Extract)、转换(Transform)、加载(Load)到最终生成商业智能(BI)报表的全流程解决方案。以下是我在这个项目中的经验和思考。
467 1
新硬盘第一次使用需要怎样做?
无论是组装新电脑,还是给现有电脑增加存储空间,我们需要进行一些安装硬盘和设置硬盘的操作。对于没有相关经验的用户来说,对于拿到手的新硬盘会感到手足无措,不知道应该从哪里开始。今天小编详细介绍一下新硬盘第一次使用时的流程,包括硬盘的初始化、健康度检测、分区格式化等操作。
|
存储 安全 JavaScript
解释 XSS 攻击及其预防措施
【8月更文挑战第31天】
1235 0
|
开发框架 前端开发 JavaScript
【Uniapp 专栏】Uniapp 中的动画效果实现与特性
【5月更文挑战第13天】Uniapp是一款跨平台开发框架,提供丰富的动画效果以提升用户体验和应用吸引力。基于CSS和JavaScript动画,支持转场、元素等多种动画类型,确保跨平台一致性并优化性能。通过CSS属性或JavaScript库实现动画,结合页面布局和手势操作,创造沉浸式交互。通过调试和优化,开发者可打造惊艳效果,适应未来技术发展,提升应用竞争力。
1145 1
【Uniapp 专栏】Uniapp 中的动画效果实现与特性
|
分布式计算 资源调度 监控
【大数据】Hadoop 2.X和1.X升级优化对比
【大数据】Hadoop 2.X和1.X升级优化对比
267 0