网络安全常见文件上传漏洞,非常详细,看完这篇就够了!

文件上传漏洞详解 文件上传漏洞详解 什么是文件上传 什么是文件上传漏洞 文件上传漏洞的原理 文件上传漏洞需满足的条件 文件上传漏洞产生的原因 上传漏洞绕过 1.客服端绕过 2.服务端绕过 3.白名单绕过 文件上传的防御方式 1.客户端(前端js检测) 2.服务端(后端PHP过滤)... 阅读详情
1.文件上传漏洞
1.1. 描述

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

1.2. 危害

非法用户可以上传的恶意文件控制整个网站,甚至是控制服务器,这个恶意脚本文件,又被称为 webshell,
上传 webshell 后门 很方便地查看服务器信息,查看目录,执行系统命令等。

1.3. 有关文件上传的知识

文件上传的过程
客户端 选择发送的文件->服务器接收->网站程序判断->临时文件->移动到指定的路径
服务器 接收的资源程序
服务器接收资源代码
python fastapi框架代码:

from fastapi import FastAPI, File, UploadFile
from typing import List
import uvicorn


app = FastAPI()

# file: UploadFile:适合大文件上传,比较常用

@app.post("/uploadFile/")
#直接对应UploadFile类型数据
async def create_upload_file(file: UploadFile):
    #打印文件名称
    print('file',file.filename)
    #将上传的文件保存到服务本地
    with open(f"{file.filename}", 'wb') as f:
        #一次读取1024字节,循环读取写入
        for chunk in iter(lambda: file.file.read(1024), b''):
            f.write(chunk)

    return {"filename": file.filename}

if __name__ == '__main__':
    #注意,run的第一个参数 必须是文件名:应用程序名
    uvicorn.run("文件上传:app", port=8080,  reload=True)







运行服务
在这里插入图片描述

客户端文件上传的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="http://127.0.0.1:8080/uploadFile/" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>







在这里插入图片描述

选择文件点击提交,上传
在这里插入图片描述

上传成功
在这里插入图片描述

文件上传漏洞
文件上传漏洞分为 直接文件上传,这种漏洞类型是属于高危漏洞的一种,能直接 getshell,而且没有任
何限制,攻击者很容易通过上传点,获取网站的控制权限,另外一种是有条件的上传漏洞,这种漏洞一般
是开发者经验不足,对文件上传做了简单的限制,如简单的前端认证,文件头文件检测,这种检测行为,
可以完全绕过的,另外一个方面就是权限认证没处理,没有对文件上传页面进行权限认证,匿名者就能访
问上传文件,上传网页后门到网站目录,控制整个网站,还有一些上传逻辑有问题,导致文件上传可以被
绕过,上传后门到网站上。有的文件上传漏洞则是通过中间件或者系统特性上传可以被服务器解析脚本文
件,从而导致网站可被控制。

文件上传漏洞的修复方案
在网站中需要存在上传模块,需要做好权限认证,不能让匿名用户可访问。
文件上传目录设置为禁止脚本文件执行。这样设置即使被上传后门的动态脚本也不能解析,导致攻击
者放弃这个攻击途径。
设置上传白名单,白名单只允许图片上传如,jpg png gif 其他文件均不允许上传
上传的后缀名,一定要设置成图片格式如 jpg png gif

1.4. 文件上传的攻击方法

寻找测试网站的文件上传的模块,常见 头像上传,修改上传,文件编辑器中文件上传,图片上传、媒体上
传等,通过抓包上传恶意的文件进行测试,上传后缀名 asp php aspx 等的动态语言脚本,查看上传时的
返回信息,判断是否能直接上传,如果不能直接上传,再进行测试上传突破,例如上传文件的时候只允许
图片格式的后缀,但是修改文件时,却没有限制后缀名,图片文件可以修改成动态语言格式如 php,则可
能访问这个文件的 URL 直接 getshell,可以控制网站。

1.5. 常见的网站文件后缀名漏洞

可执行脚本的文件后缀名,可被网站目录解析。以下是常见的后缀名
asp
asa
cdx
cer
php
aspx
ashx
jsp
php3
php.a
shtml
phtml

有些网站会对 asp 或者 php 进行过滤转成空可用这些后缀名。
aspasp asaspp
phpphp

1.5.1. 任意文件上传漏洞

任意文件上传漏洞又名文件直接上传漏洞 这种漏洞危害极大,如果攻击者能直接上传恶意脚本到网站存放
的目录,且这个目录可解析动态脚本语言,那么攻击者就能够直接获取网站权限,甚至进一步权限提升,
控制服务器。

1.5.2. 任意文件上传代码分析,php后端代码

直接获取文件名 把上传的临时文件移动到 hackable/uploads 目录下
在这里插入图片描述

直接上传文件 网页会返回路径 访问 url 即可 getshell
在这里插入图片描述

上传的文件可以改成其他恶意脚本或者后门,如中国菜刀一句话,后门大马。即可获得 webshell。
在这里插入图片描述

1.5.3. 绕过前端 js 检测上传

在文件上传时,用户选择文件时,或者提交时,有些网站会对前端文件名进行验证,一般检测后缀名,是
否为上传的格式。如果上传的格式不对,则弹出提示文字。此时数据包并没有提交到服务器,只是在客户
端通过 js 文件进行校验,验证不通过则不会提交到服务器进行处理。
在这里插入图片描述

1.5.4. 绕过 js 检测方法

按 F12 使用网页审计元素,把校验的上传文件后缀名文件删除,即可上传。
把恶意文件改成 js 允许上传的文件后缀,如 jpg、gif、png 等,再通过抓包工具抓取 post 的数据包,
把后缀名改成可执行的脚本后缀如 php 、asp、jsp、net 等。即可绕过上传。
删除 js 文件
在这里插入图片描述

抓包修改后缀名
在这里插入图片描述

1.5.5. 前端 js 检测后缀代码分析

客户端 html 上传文件时会调用 checkFile 函数,首先获取文件后缀名。如果文件为空,则弹出“请选择
要上传的文件”,如果文件不为空,获取上传的文件后缀名不 .jpg、.png 、.gif 其中一种则提示“该文
件不允许上传”,上传失败。
在这里插入图片描述

1.5.6. 绕过 contnet-type 检测上传

有些上传模块,会对 http 的类型头进行检测,如果是图片类型,允许上传文件到服务器,否则返回上传失
败。因为服务端是通过 content-type 判断类型,content-type 在客户端可被修改。则此文件上传也有可
能被绕过的风险。

1.5.7. 分析 content-type 漏洞代码

首先进行 submit 提交判断,再检测文件类型如果是 image/jpeg 或者 image/png
即允许上传。
在这里插入图片描述

1.5.8. content-type 检测上传攻击

上传文件,脚本文件,抓包把 content-type 修改成 image/jpeg 即可绕过上传。
在这里插入图片描述

修改后 Content-Type: image/jpeg
在这里插入图片描述

1.5.9. 绕过黑名单上传

上传模块,有时候会写成黑名单限制,在上传文件的时获取后缀名,再把后缀名与程序中黑名单进行检测,
如果后缀名在黑名单的列表内,文件将禁止文件上传。
黑名单代码分析
首先是检测 submit 是否有值,获取文件的后缀名,进行黑名单对比,后缀名不在黑名单内,允许上传。
在这里插入图片描述

绕过黑名单上传的攻击
上传图片时,如果提示不允许 php、asp 这种信息提示,可判断为黑名单限制,上传黑名单以外的后缀名即
可。
在 iis 里 asp 禁止上传了,可以上传 asa cer cdx 这些后缀,如在网站里允许.net 执行 可以上传 ashx 代
替 aspx。如果网站可以执行这些脚本,通过上传后门即可获取 webshell。
在不同的中间件中有特殊的情况,如果在 apache 可以开启 application/x-httpd-php
在 AddType application/x-httpd-php .php .phtml .php3
后缀名为 phtml 、php3 均被解析成 php 有的 apache 版本默认就会开启。
上传目标中间件可支持的环境的语言脚本即可,如.phtml、php3。

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

在这里插入图片描述

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

img

2、Linux操作系统

img

3、WEB架构基础与HTTP协议

img

4、Web渗透测试

img

5、渗透测试案例分享

img

6、渗透测试实战技巧

图片

7、攻防对战实战

图片

8、CTF之MISC实战讲解

图片

3、适合学习的人群

‌一、基础适配人群‌

  1. ‌零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. ‌开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. ‌应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

‌二、能力提升适配‌

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传优快云,朋友们如果需要可以在下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

Web安全—文件上传(解析)漏洞 教学目标 理解文件上传漏洞原理 掌握几种文件上传绕过方法 一、文件上传漏洞介绍 文件上传:文件上传是现代互联网常见的功能,允许用户上传图片、视频、及其他类型文件,向用户提供的功能越多,web受攻击的风险就越大。 1、文件上传漏洞 上传文件时,如果未对上传的文件进行严格的验证和过滤,就容易造成文件上传漏洞,上传脚本文件(asp、aspx、php、jsp等) 注:asp,aspx对应iis解析 php对应apache解析 jsp对应java(tomcat) 恶意上传行为可能导致网站甚至整个服务器被控制。恶 阅读详情

相关推荐

文件上传漏洞

文件上传漏洞是Web应用程序中有一个安全漏洞点,攻击者可以利用这一漏洞上传一个包含恶意代码的文件到服务器上,然后通过执行该文件来攻击服务器端应用程序。

Massimo__JAVA的博客 1190

网络安全常见十大漏洞总结(原理、危害、防御)非常详细,从零基础到精通,收藏这篇就够了!

本文总结了十大常见网络安全漏洞,包括弱口令、SQL注入、文件上传等。弱口令主要因安全意识不足导致,可能造成系统入侵和数据泄露,防御措施包括设置复杂密码并定期更换。SQL注入通过构造恶意数据库查询语句攻击,可能导致数据泄露和系统提权,可通过预编译SQL语句和参数过滤防范。文件上传漏洞因未严格校验上传文件类型,攻击者可上传恶意脚本获取系统权限。其他漏洞还涉及XSS、CSRF等。文章提供了每种漏洞的原理、危害和防御方法,帮助读者建立基本网络安全防护意识。

chengxuyuanyy的博客 3234

网络安全漏洞的常见类型

了解有关网络安全漏洞的更多信息、它们与网络威胁的区别、九种常见类型的网络安全漏洞以及如何防范这些漏洞。

网络研究观 5267

网络安全常见漏洞篇——反序列化漏洞,从零基础到精通,收藏这篇就够了!

反序列化漏洞:就是在反序列化过程中,如果恶意者可以对将要转换的字符串进行操控,从而达到任意代码执行的操作,就是反序列化漏洞。例如,攻击者可以构造恶意的Java序列化数据,其中包含可执行的Java代码,当应用程序使用反序列化操作将该数据还原成对象时,就会执行其中的恶意代码,造成安全威胁。反序列化漏洞的主要原理是应用程序在反序列化过程中没有对传入的数据进行足够的验证和过滤,导致攻击者可以利用构造的恶意序列化数据来执行任意代码或远程代码执行攻击。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

leah126的博客 1869

FPGA_adc采样并通过以太网发送到上位机

本项目使用FPGA-ZYNQ-7020采集8通道ADC数据,通过以太网上传到上位机显示波形PL部分包括数据的获取与处理,数据从PL传递到PSPS部分包括以太网的发送,由PL到PS的中断触发本文章不详细讲解背后原理 但保证每一步足够详细,跟着就能实现。本人FPGA平台 大磊FPGA7020开发板 vivado2020.2 vitis2020.2 匿名上位机公开版

weixin_42304868的博客 5628

Kettle下载与安装教程【保姆版】

Kettle简介 Kettle最早是一个开源的ETL工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。后来Kettle重命名为Pentaho Data Integration 。 它由Java开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持ETL数据管道加入机器学习算法。 主要功能 Pentaho D

weixin_43407520的博客 12万+

网络安全常见十大漏洞总结(原理、危害、防御),零基础入门到精通,看完这篇就足够了~

所以即使你后面输入了这些SQL命令,也不会被当成SQL命令来执行了,因为这些SQL命令的执行,必须先通过语法分析,生成执行计划,既然语法分析已经完成,已经预编译过了,那么后面输入的参数,是绝对不可能作为SQL命令来执行的,只会被当成字符串字面值参数。学习理解安全基础的核心原理,关键技术,以及PHP编程基础;内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

2401_84215240的博客 1259

python文件转为可执行文件(.exe)的详细步骤

本文详细介绍了如何从零开始把python文件打包成为可执行文件(.exe)。

m0_67093160的博客 3万+
上一篇: 什么是CSRF攻击,该如何防护CSRF攻击
下一篇: 零基础必看!从 0 搞懂护网行动:定义、背景、参与方,一文理清核心逻辑!
网络安全_入门教程
博客等级 码龄4年 1万+粉丝 2151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值