Upload-labs 是一个专注于文件上传漏洞的靶场,它通过模拟各种文件上传漏洞的场景,帮助安全研究人员和渗透测试人员学习和掌握如何发现和利用这些漏洞。这个靶场包含了多个关卡,每个关卡都设计了不同的挑战,以测试和提高参与者在文件上传安全方面的能力。
Upload-labs 的特点包括:
- 多关卡设计:靶场包含多个关卡,每个关卡都有不同的文件上传漏洞和绕过技术。
- 实战模拟:通过模拟真实的文件上传漏洞场景,让参与者在安全的环境中进行实战演练。
- 技术提升:参与者可以通过解决各个关卡的挑战,提升自己在文件上传安全方面的技术水平。
安装和使用 Upload-labs 的基本步骤通常包括:
- 下载靶场环境,通常是一个压缩包或者 GitHub 仓库的克隆。
- 将靶场环境解压或部署到本地服务器,如 PHPStudy、XAMPP 等。
- 通过浏览器访问靶场的 URL,开始进行各个关卡的挑战。
第一题
尝试上传一个webshell文件
查看第一题的提示
使用前段代码进行验证
既然是前端限制,那我们可以修改前端代码进行验证
我们可以将click实践中的检查函数删除,我们可以看到文件上传成功了
第二题
查看提示
MIME 类型(Multipurpose Internet Mail Extensions)是一种标准,用于定义文件的格式和性质。它由两部分组成:类型(type)和子类型(subtype),两者之间用斜杠(/)分隔。MIME 类型对大小写不敏感,但通常以小写形式书写。
在文件上传漏洞的上下文中,MIME 类型经常被用于服务器端的文件验证,以确保上传的文件是预期的类型。例如,服务器可能只允许上传图片文件,因此会检查文件的 MIME 类型是否为 image/jpeg
、image/png
或 image/gif
等。
然而,MIME 类型的验证可以被绕过,因为客户端和服务器端的MIME类型可能不一致。攻击者可以利用这一点,通过修改文件的MIME类型或扩展名来上传恶意文件。例如,攻击者可能将一个 PHP 脚本文件的扩展名改为 .jpg
,并修改 MIME 类型为 image/jpeg
来绕过服务器端的验证。
常见的 MIME 类型包括:
text/plain
:用于纯文本文件,如.txt
文件。text/html
:用于 HTML 文档。image/jpeg
、image/png
、image/gif
:分别用于 JPEG、PNG 和 GIF 图像文件。application/pdf
:用于 PDF 文档。application/octet-stream
:用于二进制文件,当文件类型未知或不明确时使用。
我们选择一个非指定类型显示无法上传,此时,我们利用BP抓包看看
将网络包发送至重放器
将MIME类型修改,发起访问之后上传成功木马文件
第三题
查看提示
提示出现了后缀名,那么我们尝试修改后缀名看看