文件上传漏洞

  • 描述
  • 中国蚁剑安装
    • 1. 官网下载源码和加载器
  • 2.解压至同一目录并
  • 3.安装
  • 4.可能会出现的错误
  • 文件上传过程
  • 必要条件
  • 代码示例
  • dvwa靶场攻击示例
    • 1.书写一句话密码进行上传
    • 2. 拼接上传地址
    • 3.使用中国蚁剑链接webshell
  • 前端js绕过方式
  • 服务端校验请求头中content-type
  • 黑名单绕过
    • 1.修改后缀名为黑名单以外的后缀名
    • 2.htaccess重写解析绕过上传
    • 3.大小写绕过
    • 4.空格绕过上传
    • 5.利用windows系统特性绕过上传(添加.)
    • 6.ntfs交换数据量::$DARA绕过上传
    • 7.利用windaows环境叠加特性绕过
    • 8.双写后缀名绕过
  • 白名单绕过
    • 1.目录可控%00截断绕过上传
    • 2.文件头检测绕过
    • 3.绕过图片二次渲染上传
  • 其他文件上传漏洞
  • 文件上传漏洞防御方法

描述

文件上传漏洞是指由于程序员未对上传的文件进行严格的验证和过滤,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。如常见的头像上传,图片上传,oa 办公文件上传,媒体上传,允许用户上传文件,如果过滤不严格,恶意用户利用文件上传漏洞,上传有害的可以执行脚本文件到服务器中,可以获取服务器的权限,或进一步危害服务器。

中国蚁剑安装

1. 官网下载源码和加载器

GitHub地址:https://github.com/AntSwordProject



》加载器咱们下载win64版本(往下滑找到下载地址)

2.解压至同一目录并

3.安装

》点击antSword.exe,进行初始化

》初始化时选择antSword_masster文件夹

4.可能会出现的错误


原因是文件夹目录选择错了,一定要选择安装在antSword_masster文件夹

文件上传过程

#mermaid-svg-585amNf4PN95iqsf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-585amNf4PN95iqsf .error-icon{fill:#552222;}#mermaid-svg-585amNf4PN95iqsf .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-585amNf4PN95iqsf .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-585amNf4PN95iqsf .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-585amNf4PN95iqsf .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-585amNf4PN95iqsf .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-585amNf4PN95iqsf .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-585amNf4PN95iqsf .marker{fill:#333333;stroke:#333333;}#mermaid-svg-585amNf4PN95iqsf .marker.cross{stroke:#333333;}#mermaid-svg-585amNf4PN95iqsf svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-585amNf4PN95iqsf .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-585amNf4PN95iqsf .cluster-label text{fill:#333;}#mermaid-svg-585amNf4PN95iqsf .cluster-label span{color:#333;}#mermaid-svg-585amNf4PN95iqsf .label text,#mermaid-svg-585amNf4PN95iqsf span{fill:#333;color:#333;}#mermaid-svg-585amNf4PN95iqsf .node rect,#mermaid-svg-585amNf4PN95iqsf .node circle,#mermaid-svg-585amNf4PN95iqsf .node ellipse,#mermaid-svg-585amNf4PN95iqsf .node polygon,#mermaid-svg-585amNf4PN95iqsf .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-585amNf4PN95iqsf .node .label{text-align:center;}#mermaid-svg-585amNf4PN95iqsf .node.clickable{cursor:pointer;}#mermaid-svg-585amNf4PN95iqsf .arrowheadPath{fill:#333333;}#mermaid-svg-585amNf4PN95iqsf .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-585amNf4PN95iqsf .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-585amNf4PN95iqsf .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-585amNf4PN95iqsf .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-585amNf4PN95iqsf .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-585amNf4PN95iqsf .cluster text{fill:#333;}#mermaid-svg-585amNf4PN95iqsf .cluster span{color:#333;}#mermaid-svg-585amNf4PN95iqsf div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-585amNf4PN95iqsf :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

选择发送的文件
服务器接收
网站程序判断
保存为临时文件
移动到指定目录

必要条件

  1. 存在上传点
  2. 可上传
  3. 可执行且可解析
  4. 可访问上传的脚本文件

代码示例

dvwa靶场攻击示例

1.书写一句话密码进行上传


2. 拼接上传地址

1. 拼接为启动目录

2. 往后依次进行拼接

未返回404 可行

3.使用中国蚁剑链接webshell



成功拿到shell权限,入侵成功

前端js绕过方式

方法1:上传图片(jpg、png等)文件后,使用bp抓包修改文件后缀为php文件
方法2:前端F12模式删除相关校验代码

服务端校验请求头中content-type

把bp抓包后,修改content-type为image/jpeg或image/png

黑名单绕过

1.修改后缀名为黑名单以外的后缀名

》上传黑名单以外的后缀名即可。

在iis里asp禁止上传了,可以上传asacercdx这些后缀,如在网站里允许.net
执行可以上传ashx代替aspx。如果网站可以执行这些脚本,通过上传后门即可
获取webshell。
在不同的中间件中有特殊的情况,如果在apache可以开启application/x-httpd-php
在AddTypeapplication/x-httpd-php.php.phtml.php3
后缀名为phtml、php3均被解析成php有的apache版本默认就会开启。
上传目标中间件可支持的环境的语言脚本即可,如.phtml、php3。

2.htaccess重写解析绕过上传

前提:apache开启rewrite重写模块

1.上传含有webshell的txt文件,修改后缀为.jpg文件
2.上传.htaccess文件到网站中内容如下:

<FilesMatch"jpg">
SetHandlerapplication/x-httpd-php
</FilesMatch>   #意思为把jpg文件识别为php文件

3.大小写绕过

修改后缀名部分大写或小写后上传
或者使用bp抓包后进行修改大小写

4.空格绕过上传

bp抓包后在上传文件末尾输入空格进行上传

5.利用windows系统特性绕过上传(添加.)

bp抓包后上传文件末尾输入.进行绕过
原理:windows中文后缀名.系统会自动忽略,直接可以执行

6.ntfs交换数据量::$DARA绕过上传

前提:win

bp抓包后修改后缀名为php::$DATA上传即可

7.利用windaows环境叠加特性绕过

1.bp抓包后修改文件后缀为(webshell).php:.jpg,此时在服务器中会生成一个xxx.php空文件
2.再次修改文件后缀为.>>>,会把本文件中的文件写入到xxx.php文件中
匹配规则:
“” = .
>=? 匹配一个字符 # >>>匹配为php
<=*匹配多个字符

8.双写后缀名绕过

bp抓包后修改php为phphpp,此时会过滤掉一个php

白名单绕过

1.目录可控%00截断绕过上传

前提:

1.请求报文中存在保存的目录
2.gpc为关闭状态
3.php版本小于5.3.4

原理:bp抓包后修改后缀名为php%00.jpg,相当于%00后均在上传过程中不识别,但服务器会识别所以可以造成上传绕过

2.文件头检测绕过

前提:使用getReailFileType检测文件开头是否是jpg、png、gif文件头

常见的图片文件头:
JPEG(jpg),文件头:FFD8FF
PNG(png),文件头:89504E47
GIF(gif),文件头:47494638
TIFF(tif),文件头:49492A00

方法:使用图片和一句话木马合成一个文件进行上传

copy xx.png/b+xxx.php shell.php  #生成shell.png文件进行上传

3.绕过图片二次渲染上传

应用场景:上传webshell图片后,网站为了符合要求会二次渲染照片(调整图片大小分辨率等)

方法:使用hxd文件(16进制)打开渲染前和渲染后的照片,对比那些在渲染后未改变,未改变部分修改为webshell木马

其他文件上传漏洞

nginx0.83----- 1.jpg%00php 解析为1.php
apahce1x或者2x------当apache遇见不认识的后缀名,会从后向前解析例如1.php.rar不认识rar就向前解析,直到知道它认识的后缀名。
phpcgi漏洞(nginxiis7或者以上)上传图片后1.jpg。访问1.jpg/1.php也会解析成php。
ApacheHTTPD换行解析漏洞(CVE-2017-15715)
apache通过mod_php来运行脚本,其2.4.0-2.4.29中存在apache换行解析漏洞,在解析php时xxx.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

文件上传漏洞防御方法

服务器端使用白名单防御,修复web中间件的漏洞,禁止客户端存在可控参数,存放文件目录禁止脚本执行,限制后缀名一定要设置图片格式jpg、gif、png文件名随机的,不可预测。

【网络安全】文件上传漏洞及中国蚁剑安装相关推荐

  1. 网络安全-文件上传漏洞的原理、攻击与防御

    目录 介绍 分类 上传-javascript检测 简介 原理 攻击 防御 上传-MIME检测 简介 攻击 防御 上传-后端文件格式检测 简介 原理 攻击 防御 上传-文件截断 简介 攻击 解析-Apa ...

  2. wmm的学习日记(文件上传漏洞)

    这个星期正式学习了一下文件上传漏洞,虽然之前也有接触过这样的题目,但还是云里雾里的感觉.现在应该可以不靠题解完完全全靠自己的脑子做一些简单的题目啦.接下来就让我浅浅总结一下吧. 目录 文件上传漏洞简介 ...

  3. 【Web安全】中国蚁剑+DVWA(本地文件上传漏洞Upload)

    文章目录 1 中国蚁剑 2 文件上传漏洞(Upload) 2.1 准备hack.php 2.2 从DVWA上传hack.php 3 使用蚁剑来连接获得webshell 1 中国蚁剑 中国蚁剑是一款开源 ...

  4. [网络安全自学篇] 八十一.WHUCTF之WEB类解题思路WP(文件上传漏洞、冰蝎蚁剑、反序列化phar)

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步.前文分享了WHUCTF部分题目,包括代码审计.文件包含.过滤绕过.SQL注入.这篇文 ...

  5. 网络安全与渗透:文件上传漏洞,一文详解(十)此生无悔入华夏,男儿何不带吴钩

    中华人民共和国网络安全法 阅读本文前,请熟读并遵守中华人民共和国网络安全法: http://gkhy.jiujiang.gov.cn/zwgk_228/jc/zcwj/202006/P02020061 ...

  6. 【网络安全】文件上传漏洞 详解

    文件上传漏洞 1.什么是文件上传 将客户端数据以文件形式封装,通过网络协议发送到服务器端.在服务器端解析数据,最终在服务端硬盘上作为真实的文件保存. 通常一个文件以HTTP协议进行上传时,将POST请 ...

  7. [网络安全提高篇] 一〇四.网络渗透靶场Oracle+phpStudy本地搭建万字详解(SQL注入、XSS攻击、文件上传漏洞)

    当您阅读到该篇文章时,作者已经将"网络安全自学篇"设置成了收费专栏,首先说声抱歉.感谢这一年来大家的阅读和陪伴,这100篇安全文章记录了自己从菜鸡到菜鸟的成长史,该部分知识也花了很 ...

  8. [网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御(三)

    这是作者的系列网络安全自学教程,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了文件上传漏洞和IIS6.0解析漏洞,包括PHP345文件绕过上传.Win ...

  9. 网络安全课第七节 文件上传漏洞的检测与防御

    13 文件上传漏洞:种植服务器木马的捷径 上一讲介绍过反序列化漏洞,利用漏洞常可以造成执行代码的严重后果. 从本讲开始将介绍文件上传漏洞,它比反序列化漏洞原理与利用更加简单,但同样可以达到控制服务器的 ...

最新文章

  1. 今天微软的office 2010终于发布了!
  2. [转]淘宝下单高并发解决方案
  3. QQ空间相册展示特效
  4. DCMTK:测试CT Table Dynamics FG类
  5. adb安装apk报错Failure [INSTALL_FAILED_INVALID_URI]
  6. 2019 The 19th Zhejiang University Programming Contest
  7. 【转】wpf从我炫系列2----布局控件的使用(下)
  8. bzoj2761 [JLOI2011]不重复数字
  9. c语言单链表怎么循环链表,链表之循环单链表(用C语言描述)
  10. [openssl]centos version ‘libcrypto.so.10‘ not found
  11. 【2022最新Java面试宝典】—— Java集合面试题(52道含答案)
  12. C++向mysql批量插入数据
  13. photoshop基础操作集合01
  14. 知识图谱导论----相关笔记
  15. PC端视频录制软件大集合,看看有没有你用过的?
  16. 抖音如何推动音乐的流行?看完这篇文章你就明白了
  17. 相忘江湖不如相濡以沫(Ⅰ)
  18. 2020上海高校程序设计竞赛暨第18届上海大学程序设计联赛夏季赛(同步赛)整理合集
  19. 历年四级作文真题范文
  20. OpenOrder解决CTP API的一系列问题说明

热门文章

  1. 英雄联盟主播有哪些精彩操作值得看?
  2. 列表的增删改查,嵌套等,及元组的查
  3. 计算机控制课程设计pid控制,自动化计算机控制课程设计参考题目
  4. 好消息!IBM技术商用 家乐福食品可追溯 商权让消费增值
  5. OpenStack创建,分发并初始化rings
  6. 支付宝交易查询接口分析及实现----springboot项目接入支付宝(四)
  7. 支付宝2020年账单来了,看看自己花了多少钱?
  8. php 作业 的背景,新课课程背景下中学语文作业布置的思考(网友来稿)a href=/friend/list.php(教师中心专稿)/a...
  9. 微服务学习——大厂面试题总结
  10. ios wifi 定位_iOS最新跳转手机设置WIFI定位等界面方法适配iOS11