fopen打开ftp文件_PHP RFI allow_url_include 远程文件包含漏洞

一、漏洞概述

php默认配置中”allow_url_include”默认设置为关闭,使PHP无法加载远程http(s)或FTP  url,防止文件包含攻击。即使” allow_url_include”和” allow_url_fopen”都Off也不会阻止SMB URL的加载。

当有漏洞的PHP程序,试图从攻击者的SMB共享中加载文件时,如果SMB共享允许访问该文件。攻击者需要将SMB服务器配置为允许匿名浏览访问。所以当受攻击程序从SMB共享中加载访问文件时,SMB服务器将不会要求凭据,并且受攻击程序会成功包含文件中的WEB SHELL PHP代码。

二、漏洞复现

1.复现环境

  • Ubuntu

  • Windows

  • PHP 5.4.5

2.漏洞触发场景

当PHP中“allow_url_fopen”和“allow_url_include”都配置为Off时,会解析SMB服务器中的文件。

3.漏洞复现

第一步    

模拟场景,修改PHP的配置文件,将allow_url_fopen”和“allow_url_include”设置为Off。效果如图:

9bca460c92d3181f121bf6899aa93b4e.png

测试下函数配置是否生效,结果如图所示:

18e680900920c98aa7765ca613695f33.png

第二步    

在ubuntu上安装samba服务器和相关配置

sudo apt-get install daemonsudo apt-get install samba

修改samba的配置文件

vim /etc/samba/smb.conf

在[golbal]标签下添加一行:

security=user

再 在文件末尾添加共享标签配置

[share]path= /home/share                    browseable=yesread only=yesguest ok =yes

保存并退出

更改共享目录权限

sudo chmod 757 /home

重启服务

service smbd restartservice nmbd restart

查看下共享

778bef8aac310cc365dd1b1edbf48854.png

第三步

环境搭建完毕,测试一下

a4cd18d35a438efa7e742d3b9a490af6.png

经测试,PHP在allow_url_fopenallow_url_include设置为Off的情况下,不允许包含HTTP和FTP协议文件但是可以从远程SMB服务器包含文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值