分析
先上传一个muma.php文件试试水,竟然发现可以上传成功。但却发现上传文件的url中后缀变成了muma.,将php删掉了。
那么我们看一下网页源码
第一行仍旧是非常详细的黑名单限制
但下面的代码与之前的不同在于第二行,是一个字符串替换函数。这个函数执行的操作是在$file_name中寻找,如果找到和$deny_ext中一样的内容时,将该内容用“ ”(空)来代替。且这个函数从左到右执行,只执行一次。
那么我们可以想到的思路就是双写php绕过的方式。
实验过程
上传php文件,并用burp进行抓包
在burp中修改文件后缀为pphphp,然后forward,可成功上传文件
注:修改后缀为phpphp不可成功绕过,两个php都会被识别替代为空
获得上传文件url使用蚁剑连接(详见第一关教程)