Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如,
如下配置文件:AddType text/html .html、AddLanguage zh-CN .cn,其给.html
后缀增加了 media-type,值为 text/html;给.cn 后缀增加了语言,值为 zh-CN。
此时,如果用户请求文件 index.cn.html,他将返回一个中文的 html 页面。以上
就是 Apache 多后缀的特性。如果运维人员给.php 后缀增加了处理器:
AddHandler application/x-httpd-php .php,那么,在有多个后缀的情况下,只
要一个文件含有.php 后缀的文件即将被识别成 PHP 文件,没必要是最后一个后缀。
利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞
开始实验
1.1 启动后 Apache 运行在
。

1.2 输入命令 vim 1.php,创建一个 php 文件,把输入 php
文件中。

1.3 设置浏览器代码,并开启 BurpSuite。

1.4 点击 Submit 按钮,上传 1.php 的一句话木马文件,并用 BurpSuite 进行抓包拦截。

1.5 把抓来的包,发到 Repeate 模板,并设置 Intercept is off。

1.6 点击 send 发送,发现被拦截。

1.7 利用多后缀解析的漏洞,修改文件后缀名:.php.jpg 成功,并返回文件的路径。

1.8 访问
/uploadfiles/1.php.jpg,右键选择 Inspect Element(Q),
找到 HackBar 工具,在框中输入地址,点击 Post data,然后在下方栏中输入
a=phpinfo();。
1.9 点击 Execute 即可成功得到 phpinfo 页面。
注意 为了避免法律上的纠纷,非必要情况下,不要用webshell来进行测试,如有必要还是采用phpinfo来测试
举报 0