打开后可以看到是一个可以进行文件上传的页面,如下图所示
查看页面源代码,如下图所示,可以看到有js代码,说明存在前端验证的可能性
上传一个php文件,此处上传shell.php后页面如下图所示,显示不是图片
用burpsuite进行抓包,修改MIME类型, 即将Content-Type修改为image/jpeg,修改之后页面如下图所示,显示NOT!php!,也就是检测出来还是php文件
将文件后缀改为jpg,页面如下图所示,文件类型符合要求,但检测文件内容中包含了’<?’
将文件后缀名改为php的其他扩展名,页面如下图所示,检测文件内容中包含了’<?’
有些网站通过检测文件内容中是否出现了PHP代码标记从而判断是否是webshell
标准代码标记:<?php…?>
JS风格的代码标记:<script language=”php”>…</script>
短标记:<?=…?>
因为一句话木马开始和结束的标记包含”<?”,所以考虑修改为JS风格的代码标记,修改完之后发送,页面如下图所示,Don’t lie to me,it’s not image at all!!!,意思就是不要欺骗我,这不是一个图片
这里考虑图片马进行绕过,也就是在内容首部加上GIF89a,发送显示上传成功,页面如下图所示
访问上传上去的文件,成功被解析执行
用蚁剑进行连接,发现flag就在根目录下