SUCTF 2019 CheckIn
# SUCTF 2019 CheckIn
# 题目分析
首先看一下题目,很普通的一个上传页面:
# 传🐎
直接先传个🐎上去看看,毫不意外的illegal
尝试更改后缀为php3、php5、phtml等都是illegal,无法上传
更改后缀为jpg,提示包含<?
无法上传
换种姿势继续上传
很明显是用exif_imagetype()函数来检测是不是图像,函数功能是读取一个图像的第一个字节并检查其签名。这里在🐎前面加个GIF89a成功绕过进行上传,得到了上传路径
(仔细查看还能发现该目录下不仅有刚传的🐎还有一个index.php文件,一开始并没有留意,这个有大用)
# 思路整理
- 上传过滤方式应该是黑名单过滤php类变种文件类型无法上传
- 对文件头进行过滤,需要添加图片文件的文件头
- 文件的内容不能包含
<?
,但可以上传<script language='php'><scirpt>
类型的图片马来绕过
目前我们已经成功上传了一个图片🐎,很自然地就会想到通过文件包含或解析漏洞来触发,也就更自然地想到利用上传.htaccess
文件来将图片🐎解析为php
失败地也很自然,服务器是nginx
,版本还比较高,并不存在解析漏洞
再回头突然注意到图片马的目录有一个php文件,这符合利用.user.ini
的文件包含来getshell
的姿势
# .user,ini
话不多说直接传
# getshell
蚁剑连接该路径下的index.php,即可获得shell,得到flag
上次更新: 2022/08/16, 22:43:10