我的编程空间,编程开发者的网络收藏夹
学习永远不晚

文件上传攻击

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

文件上传攻击

        文件上传攻击实质上就是拿下网站的控制权,户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向 服务器 上上传可执行的动态脚本文件。在我们的日常生活中经常会遇到,例如,我们在上传文件时,后台服务器对其文件检测不严时,通过修改后缀名进行执行木马病毒。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。

WebSell:以ASP、PHP、JSP等网页文件形式存在的一种命令执行环境,也叫网页后门。

利用方式

  • 一句话木马(意味着木马的攻击代码非常短,但是功能非常强大)
  • 能找到上传后的路径
  • 可能会有上传文件的策略

危害

  • 查看/上传/下载对方文件
  • 查看数据库信息
  • 可以执行系统命令
  • 欺骗用户进行恶意软件下载

防御措施

  • 上传文件的存储位置与服务器分离
  • 上传的文件重新 修改文件名、 文件后缀名
  • 文件上传的 上传保存路径根据业务进行分离
  • 下载时 根据重新生成的文件名进行下载

1.文件上传漏洞(级别:low)

配置实验环境

设置安全级别为low,进入到文件上传攻击界面。随意上传一个图片文件(小于100kb,前端限制上传文件大小),将照片成功上传到文件。

将图片进行上传

 根据提示的路径URL可以找到该图片

 创建一个PHP文件,内容如下:

  #dmc为变量,进行连接密码

 

将该文件上传,提示成功上传

 利用中国菜刀进行连接。在菜刀中进行添加SHELL的对话框,在地址输入刚才上传的PHP一句话木马地址:http://192.168.146.50/DVWA/hackable/uploads/mm.php  

中国菜刀:一款专业的网站管理软件(WebShell管理工具),小巧强大,只要支持动态脚本的网站都可以用中国菜刀进行管理。

下载地址:阿里云盘分享

 打开中国菜刀,进行连接

 中国菜刀主界面

 在主页面,点击右键,新建SHELL对话框。在地址栏输入刚才上传的一句话PHP木马

http://192.168.146.50/DVWA/hackable/uploads/mm.php后面的文本框填写文件中的变量dmc

进行连接

 

 进行shell连接,可以进行管理目标服务器的所有数据,可以进行文件上传和下载

 在这里,我们就已经利用文件上传漏洞进行提权,可以进行任意的操作,上传、下载、删除等。

2.文件上传漏洞(级别:medium)

 配置实验环境

设置安全级别为mdeium,进入到文件上传攻击界面。随意上传一个图片文件(小于100kb,前端限制上传文件大小),将照片成功上传到文件。在进行medium级别时,要提前删除low级别时上传的PHP文件,以免影响实验结果。

找到安装PhpStudy的目录,找到如下文件夹:(以我自己的电脑为例)

C:\Users\wu\Desktop\phpStudy\phpStudy\WWW\DVWA\hackable\uploads

 我们进行源代码查看,观察一下medium级别对文件上传的限制,我们发现限制文件的格式必须为image/jpeg 或者/image/png,并且限制文件不能超过100k。

 在源代码我们发现MIME类型为jpeg/png ,我们可以进行绕过,利用Burpsuite进行代理绕过。MIME默认类型:application/octet-stream,在进行绕过时,我们把类型改为image/jpeg 或者/image/png。

 开启代理后,我们继续上传之前写过的PHP文件(一句话木马),我们利用Burpsuite修改文件后缀名image/jpeg 或者/image/png,再进行放行数据包。

 进行修改默认文件类型,再进行放行数据包

修改成功后,我们成功上传文件到服务器。

  利用中国菜刀进行连接。在菜刀中进行添加SHELL的对话框,在地址输入刚才上传的PHP一句话木马地址:http://192.168.146.50/DVWA/hackable/uploads/mm.php  ,连接方式和上面一样,如果不懂,再看上面的步骤。

 

        实验到这里基本结束了,我们在学习的时候一定要进行动手,不懂的问题要及时查阅资料并做好笔记。加油,相信你们可以的。

来源地址:https://blog.csdn.net/qq_44915227/article/details/130274816

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

文件上传攻击

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux服务器防御:保护Web接口免受恶意文件上传攻击

保护Linux服务器上的Web接口免受恶意文件上传攻击有以下几个关键步骤:1. 输入验证:在处理用户上传的文件之前,始终进行输入验证。这包括检查文件名的长度和字符类型,并限制文件上传的大小。2. 文件类型验证:确保只允许上传安全的文件类型。
2023-10-18

攻击者开始使用 XLL 文件进行攻击

近期,研究人员发现使用恶意 Microsoft Excel 加载项(XLL)文件发起攻击的行动有所增加。

SpringMVC 单文件上传与多文件上传实例

一、简述一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件上传这部分知识做下笔记。二、单文件上传1、
2023-05-31

Spring boot实现文件上传实例(多文件上传)

文件上传主要分以下几个步骤:(1)新建maven java project;(2)在pom.xml加入相应依赖;(3)新建一个表单页面(这里使用thymleaf);(4)编写controller;(5)测试;(6)对上传的文件做一些限制;(
2023-05-31

Cherrypy文件上传非ASCII文件

Cherrypy 版本: 18.0.1由于某些特殊原因(可能是与标准兼容的问题),Cherrypy对上传文件的原文件名使用 ISO-8859-1 编码方式解码,导致非 ASCII 的文件名显示为乱码。解决的方式也很简单,只需要对文件名使用
2023-01-30

用Python上传文件

Python正在吞噬这个世界!您会发现许多热情的Python程序员和同样多的批评者,但不可否认的是,Python在当今软件开发中是一个强大的、相关的、不断增长的力量。Python只是一种语言,语言不能解决业务问题,如工作流、体系结构和物流;
2023-01-31

PHP cURL 文件上传

本篇文章将指导如何使用 cURL 和 CURLFile 类将图像文件发送到服务器。这个想法是将图像文件从一个页面发布到另一个页面上的另一个页面。Index.php:首先,我们将文件 image 发送到 index.php。其次,我们将文件重
PHP cURL 文件上传
2024-02-27

Python ftp上传文件

以下代码比较简单,对python实现ftp上传文件相关知识感兴趣的朋友可以参考下#encoding=utf8 from ftplib import FTP #加载ftp模块 IP = '103.240.150.104' user = 'we
2022-06-04

python ftp 上传文件

python  ftp 上传文件#!/usr/bin/env python#-*- coding: utf-8 -*-from ftplib import FTP       #调用 模块import sys,getpass,os.path
2023-01-31

大文件上传:秒传、断点续传、分片上传

当文件上传到一半中断后,继续上传却只能重头开始上传,这种让人不爽的体验。那有没有比较好的上传体验呢,答案有的,就是下边要介绍的几种上传方式。

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录