实验链接

文件上传指将客户端数据以文件形式封装,通过网络协议发送到服务器端。在服务器端解析数据,最终在服务端硬盘上作为真实的文件保存。了解文件上传漏洞产生的原因,掌握漏洞的利用方法。

链接:http://www.hetianlab.com/expc.do?ce=1d02daa2-881f-4102-83de-629637072914

同系列文章:绕过黑名单检查实现文件上传2

实验简介

实验所属系列: Web安全

实验对象: 本科/专科信息安全专业

相关课程及专业: 计算机基础、PHP、计算机网络

实验类别: 实践实验类

预备知识

  • 文件上传漏洞简介

    通常web站点会有用户注册功能,而当用户登录之后大多数情况下会存在类似头像上传、附件上传之类的功能,这些功能点往往存在上传验证方式不严格的安全缺陷,导致攻击者通过各种手段绕过验证,上传非法文件,这是在web渗透中非常关键的突破口。

  • 文件上传漏洞危害

    攻击者绕过上传验证机制上传恶意文件,通过上传的web后门获得整个web业务的控制权,复杂一点的情况是结合web服务器的解析漏洞来获取权限。

  • 文件上传检测流程

    通常一个文件以HTTP协议进行上传时,将以POST请求发送至web服务器,web服务器收到请求并同意后,用户与web服务器将建立连接,并传输数据。
    实验目的

通过该实验了解文件上传漏洞的基础知识及演示实践。

实验环境

操作系统:

Windows10:部署文件上传漏洞环境及漏洞利用;ip:10.1.1.100

辅助工具:phpStudy、Mozilla Firefox、burpsuite、菜刀

源码与工具请在实验机内下载使用:http://tools.hetianlab.com/tools/T044.zip(包里有菜刀,为避免误杀下载前请先关闭defender)

关闭defender步骤:在桌面搜索栏搜关键字 defender-> 设置-> 实时保护(关闭)即可


本次实验采用github开源项目upload-labs靶场,项目地址:https://github.com/c0ny1/upload-labs

实验步骤

步骤一

任务描述:后缀大小写绕过实现文件上传。

下载源码文件到phpStudy的WWW目录下,在源码文件里创建一个名为upload的文件夹:


PHP版本切换至5.2.17,开启phpStudy;

浏览器访问http://10.1.1.100/upload-labs/index.php,选择Pass-05,点击右上角‘显示源码’,通过源码提示进行文件上传:

可以看出此处对后缀名为. php的文件做了限制,但是没有将后缀进行大小写统一,我们可以通过大小写绕过上传恶意文件。

在桌面写一个简单的一句话木马eval.php:

上传eval.php并用burpsuite抓包,将文件后缀改为.phP,点击‘go’之后在Response处查看响应内容:

burpsuite不会使用的同学可参考我上一篇笔记:burp暴力破解

可以看到文件已经成功上传,但是文件名已经变成了202003081530079359.phP。一些网站会对上传的文件进行文件名随机修改,以防攻击者通过原文件连接webshell,如果不通过burpsuite抓包检测很难发现这一点。

Firefox浏览器访问脚本http://10.1.1.100/upload-labs/upload/202003081530079359.phP,并开启post data:

没有找到HackBar,也是醉了。。。。

尝试用步骤二的方法连接webshell:

成功连接webshell。

步骤二

任务描述:空格绕过实现文件上传。

选择Pass-06,点击右上角‘显示源码’,通过源码提示进行文件上传:

发现还是黑名单检测,但是没有对后缀名进行去空处理,可以通过在后缀名后加空进行绕过。

还是上传之前的PHP一句话木马eval.php并用burpsuite抓包,将文件后缀改为.php+空格,点击‘go’:

在Response处查看响应内容:

此时文件名变为202003081549408284.php

利用菜刀进行webshell连接:

burpsuite不会使用的同学可参考我上一篇笔记:文件上传漏洞

点这个‘+’号;

输入webshell地址:http://10.1.1.100/upload-labs/upload/202003081549408284.php

在后面那个小框框即post数据输入框里输入:test=phpinfo();

点击post数据输入框后面的提交键,即可连接webshell:

连接成功。

步骤三

任务描述:利用Windows系统的文件名特性,通过点绕过实现文件上传。

选择Pass-07,通过查看源码可以发现没有对后缀名进行去‘.’处理,利用Windows系统的文件名特性,会自动去掉后缀名最后的‘.’,通过在文件名后加‘.’进行绕过。

上传eval.php并用burpsuite抓包,将文件名改为‘eval.php.’:

点击‘go’之后在Response处查看响应内容:

虽然在burpsuite里看到的是.php.文件,但是在Windows里保存的会是.php文件。

通过菜刀连接:

此处的‘test’即为@eval($_POST[‘test’]);中的‘test’,脚本类型选择PHP,点击‘添加’:

成功通过菜刀连接。

漏洞修复

  • 将上传的目录设置为不可执行;

  • 判断文件类型:结合MIME Type、后缀检查等方式,推荐文件类型检查使用白名单的方式;

  • 使用随机数改写文件名和文件路径。

答题

绕过黑名单检查实现文件上传1 ——合天网安实验室学习笔记相关推荐

  1. asp 检查黑名单_十九、绕过黑名单检查实现文件上传2

    1.   文件上传漏洞简介 通常web站点会有用户注册功能,而当用户登录之后大多数情况下会存在类似头像上传.附件上传之类的功能,这些功能点往往存在上传验证方式不严格的安全缺陷,导致攻击者通过各种手段绕 ...

  2. ctf题目php文件上传如何绕过_ctf基本的文件上传与绕过学习

    绕过客户端校验前台脚本检测扩展名上传webs hell 原理: 当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何 消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前 ...

  3. Vue文件上传问题合集

    目录 1.背景 2.环境 3.问题集 1)文件上传完成后,文件名的回显 2)文件上传完成前的加载状态 3)文件上传作为必填项 1.背景 在使用Vue+ElementUI进行前端工程开发中,遇到一些文件 ...

  4. 文件上传 黑名单白名单绕过(上)

    前言 文件上传常见验证: 后缀名:类型,文件头 后缀名:黑名单,白名单 文件类型:MIME信息 文件头:内容信息 php与html代码混编 $_FILES[表单上传name]['name'] < ...

  5. Web安全——文件上传漏洞

    文件上传漏洞 绕过JS验证 通过表单上传时,可能存在JS对文件类型.大小的检验 使用BurpSuite剔除相应JS 上传WebShell,使用菜刀连接 <?php @eval($_POST[&q ...

  6. 文件上传漏洞总结(含原因+防御措施)+白名单+黑名单+内容、头+解析漏洞/修补方案

    文件上传漏洞简单总结+白名单+黑名单+内容.头+解析漏洞/修补方案 问题 什么是文件上传漏洞? 危害? 防御措施? 文件上传(验证/绕过)措施? 前端 js类绕过? 后端 黑名单绕过 特殊解析后缀 . ...

  7. 各种文件上传绕过姿势(一)

    各种文件上传绕过姿势 **目录** 各种文件上传绕过姿势 写在前面 一.前端绕过 1.1 防护手段 1.2 绕过方法 二.检查MIME类型 2.1 防护手段 2.2 绕过方法 三.黑名单绕过(一) 3 ...

  8. Web安全-文件上传漏洞与WAF绕过

    文章目录 概述 Webshell简述 上传漏洞原理 上传漏洞绕过 解析漏洞 IIS 6.0解析漏洞 Apache解析漏洞 Nginx解析漏洞 Windows文件命名 客户端检测绕过 更改前端JS代码 ...

  9. 渗透测试-文件上传之过滤绕过(二)

    文件上传之过滤绕过(二) 文件上传实验室第3,4关 文章目录 文件上传之过滤绕过(二) 前言 一.下载upload实验室,进行练习 二.进行后缀名绕过,拿shell 1.更改后缀名.php3绕过 2. ...

最新文章

  1. 比特币现金成为第二个最有价值的区块链
  2. 标准情况下的最优方案与魔鬼赛道
  3. 惯用过程模型_惯用的Ruby:编写漂亮的代码
  4. andriod 新建 Activity_ Form (详细设置)
  5. rabbitmq原理 php,Rabbitmq基本原理
  6. 国产卫星高分四号(GF4)预处理(辐射定标)
  7. log4j的使用 slf4j简单介绍
  8. java中Cookie类详解
  9. vSphere Client 连接ESXi 或者是vCenter 时虚拟机提示VMRC异常的解决办法
  10. 微电网逆变器VF控制_SIMULINK_模型搭建详解_附加“仿真教程”
  11. zemax---System Explorer(系统选项)
  12. 钻井液中PHP是指什么,关于钻井液,你必须知道这些…
  13. 欧洲批准最强粒子对撞机计划,造价210亿欧元,全长100公里,耗资巨大引争议...
  14. 人脸表情识别系统介绍——上篇(python实现,含UI界面及完整代码)
  15. 在二叉树中找到两个节点的最近公共祖先(C++)
  16. android音频管理器(AudioManager)
  17. DNSPod吴洪声:国外域名注册商域名不许国内解析
  18. 30句感悟人生的格言名言
  19. android 热更新之腾讯Bugly 及所遇问题的修改总结
  20. 云原生Istio安装和使用

热门文章

  1. CGB2105-Day16
  2. Keil环境下完成一个基于STM32汇编程序的编写
  3. Java使用 jxl 对Excel表进行分页(预览效果不变)
  4. Linux修改root密码
  5. Matlab之选取特定区域的坐标点
  6. linux下生成uuid
  7. 【Android -- 写作工具】Markdown 图片
  8. 2020大学生专业薪资排名一览
  9. 什么是模块化?模块化有哪些优缺点
  10. python显示磁共振图像(MRI)(pydicom)