【网络安全渗透】常见文件上传漏洞处理与防范_文件上传漏洞解决方案

在这里插入图片描述

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

文章目录
  • 1.文件上传漏洞
    • 1.1. 描述
    • 1.2. 危害
    • 1.3. 有关文件上传的知识
    • 1.4. 文件上传的攻击方法
    • 1.5. 常见的网站文件后缀名漏洞
      • 1.5.1. 任意文件上传漏洞
      • 1.5.2. 任意文件上传代码分析,php后端代码
      • 1.5.3. 绕过前端 js 检测上传
      • 1.5.4. 绕过 js 检测方法
      • 1.5.5. 前端 js 检测后缀代码分析
      • 1.5.6. 绕过 contnet-type 检测上传
      • 1.5.7. 分析 content-type 漏洞代码
      • 1.5.8. content-type 检测上传攻击
      • 1.5.9. 绕过黑名单上传

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。

👇👇👇

黑客/网络安全学习路线

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习资源分享:

下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!

一、2025最新网络安全学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

读者福利 | 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。


在这里插入图片描述

L1级别:网络安全的基础入门

L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。


在这里插入图片描述

L2级别:网络安全的技术进阶

L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。


在这里插入图片描述

L3级别:网络安全的高阶提升

L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。


在这里插入图片描述

L4级别:网络安全的项目实战

L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题


在这里插入图片描述

整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、技术文档和经典PDF书籍

书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)


在这里插入图片描述

三、网络安全视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。


在这里插入图片描述

四、网络安全护网行动/CTF比赛

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。


在这里插入图片描述

五、网络安全工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

在这里插入图片描述

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…


在这里插入图片描述


img

**读者福利 |** 优快云大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值