网安入门10-文件上传(中国蚁剑)

什么是文件上传漏洞——来自GPT-4

文件上传漏洞是一种常见的安全漏洞,它出现在Web应用程序中,允许攻击者上传恶意文件到服务器。这种漏洞可能导致严重的安全问题,例如服务器被入侵、数据泄露和应用程序功能受损。

文件上传漏洞通常由以下几个原因导致:

  1. 不充分的文件类型验证:Web应用程序应该仅允许用户上传特定类型的文件,例如图片、文档等。如果验证不严格,攻击者可能会上传恶意文件,如脚本或可执行文件。

  2. 不安全的文件名处理:攻击者可能会尝试使用特殊字符或路径遍历技术来上传文件到非预期的目录。这可能导致对服务器上其他文件的访问或覆盖。

  3. 不恰当的权限设置:如果上传目录的权限设置不当,攻击者可能会利用上传的文件执行恶意操作,例如执行代码或访问敏感数据。

为了防止文件上传漏洞,作为一名软件工程师,我们可以采取以下措施:

  1. 限制允许上传的文件类型:仅允许用户上传预定义的安全文件类型,并对文件扩展名和MIME类型进行严格验证。

  2. 对文件名进行安全处理:对上传的文件名进行过滤和验证,移除特殊字符,防止路径遍历攻击。

  3. 设置合适的权限:确保上传目录的权限设置正确,限制对敏感数据和系统文件的访问。

  4. 文件内容检查:对上传的文件进行内容检查,以防止潜在的恶意代码或嵌入式恶意内容。

  5. 使用隔离的文件存储:将上传的文件存储在与应用程序隔离的位置,以降低潜在的安全风险。

  6. 定期更新和打补丁:保持Web应用程序和服务器组件的更新,以修复已知的安全漏洞。

我的理解

最简单的文件上传例子:新建微信/QQ账号,上传新头像;或者学校宿舍报修系统,宿舍水龙头坏了,上传报修图片。

文件上传靶场

这里我们使用Pikachu皮卡丘平台,选择一张图片点击上传即可,注意给的是相对路径

输入相对路径就可以找到我们上传的图片了

此时,已经把我们的图片上传到对方服务器当中了,我们打开上帝视角
以上是正常客户的操作——老老实实上传图片,如果你是个黑客呢?

一句话木马

现在到了最经典的部分

<?php @eval($_POST['w']);?>

eval():执行代码层面命令
system():执行系统层面命令

先把上面这段话写好,保存到一个名为1.php的文件中,接着按照图片的位置上传我们的马子

经过不到0.1秒跳出来下面这个,所以我们判断是前端校验

通过浏览器的定位器定位到源码有个前端函数checkFile()我们直接删掉他
然后就上传成功

然后就可以成功在对方网站执行代码啦

用HackBar执行命令显得很low,所以我们使用流量连接工具——中国蚁剑

除了蚁剑,shell连接工具还有菜刀,冰蝎,哥斯拉等
菜刀最开始给网站运维人员(站主)用的,后面被黑客发现就变成黑客工具了
冰蝎和哥斯拉在功能上更强,有自己特有的流量(AES加密),流量特征不一样

挂上蚁剑的代理,抓一下蚁剑的流量

经过URL解码,可以发现蚁剑的流量是没有被加密的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/603422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记——C++运算符之逻辑运算符

作用&#xff1a;用于根据表达式的真值返回真值或假值 逻辑运算符有以下符号&#xff1a; #include<bits/stdc.h> using namespace std; int main(){// 逻辑运算符 非 !int a10;//在c中&#xff0c;除了0均是真 cout<<!a<<endl;//0 cout<<!!a<<…

oninput和onchange事件的区别是什么

oninput 和 onchange 是两种不同的事件&#xff0c;它们在处理用户输入时具有一些区别。 1. oninput 事件&#xff1a; - 触发时机&#xff1a;当用户输入框的值发生改变时立即触发&#xff0c;即时反馈用户的输入。 - 适用元素&#xff1a;主要用于 <input>、<…

GNSS观测值线性组合

1 在几何距离线性化中&#xff0c;不论变量x的估计值是多少&#xff0c;估值改正数的系数是不变的。 2.宽、窄巷组合&#xff08;噪声放大倍数&#xff09; 由于几何距离与频率无关&#xff0c;在宽巷组合中&#xff0c;可直接依据几何距离&#xff0c;四舍五入确定宽巷模糊度 …

Android 车联网——CarService介绍(二)

上一篇文章我们介绍了 Android Automotive OS 车载操作系统,其实就是传统的手机系统加上相关的汽车服务,构成了现在的车载操作系统,而其中 CarService 就是提供汽车相关功能的最主要的模块。 本文重点来介绍一下 CarService,也就是 Android 汽车服务。 一、CarService组成…

机器学习周刊第二期:300个机器学习应用案例集

大家好 前文&#xff1a;机器学习项目精选 第一期 继续分享我最近看过并觉得非常硬核的资源&#xff0c;包括Python、机器学习、深度学习、大模型等等。 1、Python编程挑战 地址&#xff1a;https://github.com/Asabeneh/30-Days-Of-Python 30天Python编程挑战是一个逐步学…

解锁Python装饰器的魔力:提升代码魅力的秘密武器

解锁Python装饰器的魔力&#xff1a;提升代码魅力的秘密武器 Python的装饰器&#xff08;Decorators&#xff09;是一种特殊的语法构造&#xff0c;它允许我们在不修改被装饰函数源代码的情况下&#xff0c;通过在其周围添加额外功能或行为。 装饰器本质上是一个函数&#xf…

基于SSM的网上购物平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

【fly-iot飞凡物联】(15):IOT项目使用TDengine数据库,进行技术调研,本地使用docker启动成功,可以使用python进行连接数据插入。

目录 前言1&#xff0c;视频演示地址2&#xff0c;关于TDengine2&#xff0c;启动数据库tdengine 服务3&#xff0c;Docker Compose搭建TDengine集群 前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/108971807 fly-iot飞凡物联专栏&#xff1a; htt…

单文件上传

随着Web应用的普及&#xff0c;文件上传功能成为许多网站和应用不可或缺的一部分。本文整理了个人学习过程中的笔记&#xff0c;为开发者提供全面的了解和实践经验。 单文件上传 在早期的html应用中&#xff0c;都是使用form标签中嵌套来实现文件上传的&#xff0c;具体代码如…

YTM32的低功耗PowerDown模式及唤醒管理器WKU模块

文章目录 Introduction专门的唤醒源管理器WKU外部的唤醒引脚内部的触发信号 进入PowerDown模式的操作流进入低功耗模式配合使用的其他模块 性能指标低功耗电流唤醒时间 Conclusion Introduction YTM32的低功耗系统中有设计了多种工作模式&#xff0c;功耗从高到低&#xff0c;…

Android AIDL 创建的DEMO

使用AIDL创建一个demo 主要参考文件&#xff0c; 以及其他地址 Android 接口定义语言 (AIDL) | Android 开发者 | Android Developers 绑定服务概览 | Android 开发者 | Android Developers Android 接口定义语言 (AIDL) Android 接口定义语言 (AIDL) 与您可能使用…

史诗级长文--决策树

决策树 决策树(decision tree)是一种基本的分类与回归方法。 举个通俗易懂的例子&#xff0c;如下图所示的流程图就是一个决策树&#xff0c;长方形代表判断模块(decision block)&#xff0c;椭圆形成代表终止模块(terminating block)&#xff0c;表示已经得出结论&#xff0c;…

C练习——肇事卡车车牌号

题目&#xff1a; 一辆卡车违反交通规则&#xff0c;撞人后逃跑。现场有3人目击事件&#xff0c;但没有记住车牌号&#xff0c;只记住了车号的一些特征。 甲说&#xff1a;“牌照前两位数字是相同的”&#xff0c;乙说&#xff1a;“牌照的后两位数字是相同的&#xff0c;但与…

pinia的独立维护,统一导出及持久化

目录 1.说明及示例 2.注意 1.说明及示例 在src下创建store文件夹&#xff0c;在store文件夹下创建index.js文件&#xff0c;内容如下&#xff1a; import { createPinia } from "pinia"; // pinia的持久化 import piniaPluginPersistedstate from "pinia-pl…

odoo17 | 视图字段验证约束

前言 前一章介绍了向模型添加一些业务逻辑的能力。现在我们可以将按钮链接到业务代码&#xff0c;但是我们如何防止用户输入错误的数据呢?例如&#xff0c;在我们的房地产模块中&#xff0c;没有什么可以阻止用户设置负预期价格。 Odoo提供了两种方法来设置自动验证的不变量…

【gRPC学习】使用go学习gRPC

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 RPC是远程调用,而google实现了grpc比较方便地实现了远程调用,gRPC是一个现代的开源远程过程调用(RPC)框架 概念介绍 在gRPC中&#xff0c;客户端应用程序可以直接调用另一台计算机上的服务器应用程序上的方法&#…

认识加密和解密

加密技术源远流长&#xff0c;自从古代有了信息的传递和存储&#xff0c;就有了加密技术的运用。此后&#xff0c;很长一段时间里&#xff0c;加密及解密技术在军事、政治、外交、金融等特殊领域里被普遍采用&#xff0c;并经过长时间的研究和发展&#xff0c;形成了比较完备的…

element plus 表格组件怎样在表格中显示图片

官方给的&#xff1a; <el-table-column label"Thumbnail" width"180"><template #default"scope"><div style"display: flex; align-items: center"><el-image :preview-src-list"srcList"/><…

一起玩儿物联网人工智能小车(ESP32)——24. 变量与函数(二)

摘要&#xff1a;本文介绍变量和函数的基本知识 在前面一篇中了解了变量&#xff0c;接着就来了解一下函数。函数是程序中的一个关键概念&#xff0c;它可以简化程序的编写&#xff0c;使代码更加模块化、可复用&#xff0c;提高程序的可读性。其实在之前已经多次遇到函数了&am…

Arduion Modbus通讯示例

实现了Arduion和Qt上位机利用Modbus协议采集DHT11数据&#xff0c;以及开关LED灯 软件界面&#xff1a; 实物界面&#xff1a; arduion下位机代码&#xff1a; #include <ModbusRtu.h> #include <DHT.h>#define DHTPIN 2 // DHT11连接到Arduino的数字引…