文件上传-BUUCTF解题记录

发布于: 2024-05-19 06:57

题目收集自BUUCTF等平台,如有侵权告知删除

[极客大挑战 2019]Upload 1

题目地址[极客大挑战 2019]Upload 1

正常上传一个简单的php文件,会提示不是图片文件

# 1.php
<?= phpinfo();?>

先从最简单的开始,尝试BP抓包修改报文中MIME类型,放行。又提示上传的是PHP文件,换一个不常见的扩展名.phtml,提示匹配到了<?

1

换成js脚本的写法

# 1.phtml
<script language='php'>phpinfo();</script>

提示上传失败,检测到不是图片文件,给他加个图片文件头的特征

参考图片文件头

# 1.phtml
GIF89a
<script language='php'>phpinfo();</script>

2

再次上传成功,访问url/upload/1.phtml看到phpinfo()函数执行

[ACTF2020 新生赛]Upload 1

题目地址[ACTF2020 新生赛]Upload 1

正常上传php文件,js弹出只能上传图片

禁用js,我用chrome插件禁用js

3

禁用后,php文件还是上传不了,php3,php5也不行,尝试上传一个phtml文件

# 1.phtml
<?php phpinfo();?>

上传后访问,phpinfo()函数执行

[MRCTF2020]你传你🐎呢 1

题目地址[MRCTF2020]你传你🐎呢 1

传php文件都失败了,看样子只能用图片了。上传.htacess文件失败,修改MIME类型,.htacesss文件上传成功。

# .htacess
AddType application/x-httpd-php .png

".htaccess" 文件是 Apache Web 服务器特有的文件,用于配置服务器的行为。通过 ".htaccess" 文件,用户可以在特定目录中覆盖 Apache 服务器的全局配置,包括重定向、认证、缓存控制等。

接着上传图片

# 1.png
<?php phpinfo();?>

上传成功,访问看到phpinfo()函数执行

5

[GXYCTF2019]BabyUpload 1

题目地址[GXYCTF2019]BabyUpload 1

上传php文件提示不能上传后缀名有ph的文件,这题看来要用图片。上传png,gif图片失败,修改MIME类型也不能上传,最后看大佬博客发现只能用jpeg

【CTF】[GXYCTF 2019]BabyUpload

[GXYCTF2019]BabyUpload1 -- 题目分析与详解

最后BP抓包MIME类型修改为image/jpeg竟然上传成功了。

上传.htacess文件

# .htacess
AddType application/x-httpd-php .png

上传png图片

# 1.png
<?php phpinfo();?>

提示还是php文件,尝试使用js格式

# 1.png
<script language='php'>phpinfo();</script>

上传成功,访问看到phpinfo()函数执行