打靶日常-文件上传
小皮:
打靶之前:准备一个php文件:
内容为:
<?php phpinfo();?>
准备一个像素为10*10的自定义图片
第一题:客户端验证:
我们发现验证的时候没有返回包,所以是前端认证:
这里我们禁用js:插件为JavaScript Switch
然后我们拼接路径
第二题:MIME类型:
知识点:
在文件上传时,客户端(如浏览器)会自动检测文件的 MIME 类型,并通过 HTTP 请求头的Content-Type
字段发送给服务器。服务器可以通过验证该字段,判断上传文件是否符合预期类型(例如只允许上传图片、文档等),从而一定程度上防止恶意文件(如可执行脚本)上传。
常见文件上传的 MIME 类型示例
以下是文件上传中常见的 MIME 类型:
文件格式 | 对应的 MIME 类型 |
---|---|
纯文本文件(.txt) | text/plain |
HTML 文件(.html) | text/html |
JPEG 图片(.jpg/.jpeg) | image/jpeg |
PNG 图片(.png) | image/png |
GIF 图片(.gif) | image/gif |
PDF 文件(.pdf) | application/pdf |
Word 文件(.doc) | application/msword |
Word 文档(.docx) | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
Excel 文件(.xls) | application/vnd.ms-excel |
Excel 文档(.xlsx) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
ZIP 压缩包(.zip) | application/zip |
MP3 音频(.mp3) | audio/mpeg |
MP4 视频(.mp4) | video/mp4 |
我们使用比较器来对比php文件和正常jpg文件的不同:
我们修改:
显示:
验证:
第三题:
我们先生成一个文件
这里我们要使用文件包含漏洞来实现,之后更新
dvwa:
low:直接上传:
medium:
先是直接上传:
修改类型: