CTFHub-技能树-文件上传
本文最后更新于:2024年5月22日 晚上
文件上传的相关练习,这里写到MIME验证的时候才想起来写
所以MIME验证会写的较为详细
MIME验证
1. 知识点
MIME((Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。
它是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式每个MIME类型由两部分组成,前面是数据的大类别,例如声音 audio、图象 Image等,后面定义具体的种类。
常见的MME类型,例如:
- 超文本标记语言文本 .html,html text/htm
- 普通文本 .txt text/plain
- RTF文本. rtf application/rtf
- GIF图形 .gif image/gif
- JPEG图形 . jpg image/jpeg
2. 题解
这里我们直接传一个jpg文件
这样它的Content-Type
就会是image/jpeg
然后抓包改成php上传
蚁剑连接即可
注意这里连接的时候输入的是http://challenge-76b3e352b9948d46.sandbox.ctfhub.com:10800/upload/mime.php
,因为你通过抓包已经把php给传上去了
然后找到flag文件:
打开即可
00截断
先认真了解一下什么是00截断:
关于上传中的00截断分析 | AdminTony's Blog
然后就知道了,其实很简单的原理
先看一下源码:
1 |
|
还是白名单,只能传"jpg", "png", "gif",那跟上题一样,先构造一个jpg文件
然后抓包:
改包:
蚁剑连接即可:
参考:
CTFHub题解-技能树-Web-文件上传(无验证、前端验证)【一】 - 0yst3r - 博客园 (cnblogs.com)
CTFHub题解-技能树-Web-文件上传(.htaccess、MIME绕过、文件头检查)【二】 - 0yst3r - 博客园 (cnblogs.com)
CTFHub题解-技能树-Web-文件上传(00截断、双写后缀)【三】 - 0yst3r - 博客园 (cnblogs.com)