我们将绕过php远程文件包含的限制,并执行RFI的利用,即使PHP环境被配置为不包含来自远程HTTP/FTP 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当前配置截图:
chmod 0555 /var/www/html/pub/
chown -R nobody:nogroup /var/www/html/pub/
[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”存在。
总结
以上所述是小编给大家介绍的使用SMB共享来绕过php远程文件包含的限制执行RFI的利用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程学习网网站的支持!
本文标题为:使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
- 用nohup命令实现PHP的多进程 2023-09-02
- PHP简单实现二维数组的矩阵转置操作示例 2022-10-02
- PHP实现微信支付(jsapi支付)流程步骤详解 2022-10-09
- PHP仿tp实现mvc框架基本设计思路与实现方法分析 2022-10-18
- laravel通用化的CURD的实现 2023-03-17
- PHP中PDO事务处理操作示例 2022-10-15
- windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境) 2023-09-02
- Laravel balde模板文件中判断数据为空方法 2023-08-30
- php微信公众号开发之秒杀 2022-11-23
- laravel实现按月或天或小时统计mysql数据的方法 2023-02-22