源码分析
这一关的源码先检查了文件后缀,如果是php类型直接就被删除,无法使用第十八关的方法。这里使用apache的解析漏洞+条件竞争绕过
apache解析漏洞
Apache解析漏洞主要是因为Apache默认一个文件可以有多个用.分割得后缀,当最右边的后缀无法识别(mime.types文件中的为合法后缀)则继续向左看,直到碰到合法后缀才进行解析(以最后一个合法后缀为准)
那么,在有多个后缀的情况下,只要包含.php后缀的文件就会被识别出php文件进行解析,不需要是最后一个后缀,可绕过白名单过滤。(此处为转载 原文链接:https://blog.csdn.net/weixin_44174581/article/details/119387616)
实验过程
上传木马文件(与十八关的文件相同),并用burp抓包
修改文件类型为php.7z,右键→send to intruder
访问上传的木马文件,进行抓包。送到intruder,按照①②③④进行同样的修改
两边同时开始攻击
在upload文件下找到Tony.php文件后停止攻击
访问Tony.php文件,最后用蚁剑连接(详见第十八关教程,步骤相同,不再赘述)