1 测试
测试后一共有三种回显结果:
- <? in contents!表示 <?不能连续出现在文件中
- illegal suffix!表示 不能上传后缀为php、php4、php5、phtml等可直接被解析的PHP文件
- exif_imagetype:not image表示判断一个图片的类型(即读取一个图像的第一个字节并检查其签名)
2 解题思路
- 先上传一个.user.ini文件,.user.ini会将图片马中的代码包含到每个php文件中
- 再上传一个图片文件(图片中是php一句话木马)
2.1 Attention
- 图片马可以是GET或者POST类型;GET类型直接在URL中传参,POST类型用剑蚁连接即可
- 图片马的文件名要和.user.ini包含的文件名一致
2.2 上传文件的内容如下
- 使用GIF89a绕过exif_imagetype判断
- 使用<script>标签绕过对<?的检测
# .user.ini文件内容如下 |
# 123.jpg文件内容如下 |
3 解题结果
- 上传两个文件之后回显文件上传路径
- 这里我们采用GET方式连接,构造URL,注意要在存储路径后面加index.php:
http://127.0.0.1:39001/uploads/5b02a1fb5a263b1ba6b075868c2849fa/index.php?cc123=system("cat /flag"); |
- 拿到flag: