php LFI读php文件源码以及直接webshell

本文详细介绍了如何通过PHP://filter读取PHP文件源代码,并在allow_url_include=On的情况下直接执行远程PHP代码的方法。包括本地测试案例、PHP://filter和PHP://input的使用说明。

小菜无意中看到大牛的一篇文章,看后觉得很受益,所以就转载过来了。

之前只知道“include”语句是包含并运行指定文件,遇到的话也只是找上传点然后getshell。

看来这篇文章后,才知道还可以读取php文件的源代码,这样的话,就可以读取网站的配置文件了。

而且在allow_url_include=On 的情况下,还可以直接执行php代码。

原文:http://hi.baidu.com/casperkid/item/2baf952b13a9cd0e76272cb0

本地测试成功后,就简单描述如下了。


假设test.php文件存在文件包含漏洞,测试代码如下:

<?php include $_GET['page'];?>

然后,通过php://filter 读取php文件的源代码。

成功读取到phpinfo.php文件的源代码,然后在经base64-decode就可以了。

更多关于php://filter的信息,可以参考:http://php.net/manual/zh/wrappers.php.php


第二种情况,当allow_url_include = On的时候(默认情况下,是为off的),就可以包含远程文件,问题也就变得简单了。

不过这里作者提供的是另一种思路,即通过php://input和data url 直接动态执行php代码。

更多关于php://input的使用,请参考:http://php.net/manual/zh/wrappers.php.php


更多关于data url的介绍请参考:http://msdn.microsoft.com/en-us/library/cc848897%28v=vs.85%29.aspx



### CTFShow 菜狗杯 WebShell 题目解题思路 在处理CTFShow菜狗杯中的WebShell题目时,理解服务器端文件包含漏洞(LFI/RFI)、命令执行以及如何上传并操作WebShell至关重要。通常情况下,在PHP环境中,`include()`、`require()`等函数如果可控,则可能被用于加载远程或本地恶意脚本。 对于此类挑战,攻击者可能会尝试通过各种手段获取对目标系统的未授权访问权限。这包括但不限于: - 利用已知的安全缺陷,如SSRF漏洞,该类漏洞常见于`curl()`、`file_get_contents()`、`fsockopen()`等功能中[^1]。 当面对具体比赛环境下的WebShell场景时,参赛选手应关注以下几个方面来构建解决方案: #### 识别潜在入口点 仔细审查给定的应用程序源码片段或其他提示信息,寻找可能存在安全隐患的地方。特别是那些允许用户输入影响到文件路径解析逻辑的位置。 #### 构建有效载荷 一旦确认了可以利用的弱点,下一步就是精心设计能够绕过防护机制的有效载荷。例如,针对过滤不严格的文件名参数,可以通过特殊字符编码等方式实现任意文件读取;而对于支持多种协议的URL处理器来说,尝试使用`php://filter`伪协议可能是有效的策略之一。 #### 执行与交互 成功植入WebShell之后,便可通过浏览器插件(比如HackBar工具)或是自定义编写的自动化脚本来发送HTTP请求并与之互动[^2]。此时需要注意的是要谨慎选择通信方式以免触发额外的日志记录或者其他形式的监控措施。 ```bash # 使用 curl 发送 POST 请求作为示例 curl -X POST http://example.com/vulnerable_page.php --data "cmd=whoami" ``` 为了更好地理解和掌握这类技术细节,建议深入研究实际案例分析报告和技术博客文章,并积极参与在线社区讨论交流经验心得。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值