自学内容网 自学内容网

攻防世界 - Web - Level 1 | file_include

关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客

0x01:Write UP

本题考察的是 PHP 的文件包含漏洞,一般 CTF 的文件包含漏洞考点都是 PHP 伪协议。题目透露出来的代码比较 Easy:

 <?php  
 highlight_file(__FILE__);  
     include("./check.php");  
     if(isset($_GET['filename'])){        
         $filename  = $_GET['filename'];  
         include($filename);  
     }  
 ?>

它包含了一个 check.php 估计是对用户传入值进行一个检查的文件,然后就是直接进行文件包含了。

依据 CTF 的尿性,Flag 一般都是藏在 flag.xxx 文件中的,当然不乏改名的。我们在进行文件包含之前,先定位一下 Flag 文件的位置(这里可以使用工具扫,但笔者觉得没必要)。

直接访问 /flag.php 文件,结果返回为空(因为不是 404,证明确实存在该文件):

下面我们就是尝试进行文件包含,直接包含 flag.php 的话,内容肯定会和我们直接访问一样,显示为空,所以我们需要对 flag.php 内容进行编码后再进行包含。

本关考察的 PHP 伪协议是 php://filter,使用的过滤器是 convert.iconv.*,你可以理解为使用 iconv() 函数处理所有的输入输出流。convert.iconv.* 过滤器使用方法有如下两种:

 convert.iconv.<input-encoding>.<output-encoding>
 or 
 convert.iconv.<input-encoding>/<output-encoding>

其中 <input-encoding><output-encoding>就是编码的方式,PHP 支持的字符编码可以从 PHP 官网获取,链接如下(笔者已经收集好了做成字典了):

PHP: Supported Character Encodings - Manual https://www.php.net/manual/en/mbstring.supported-encodings.php

过关的 Payload 模板如下:

 ?filename=php://filter/convert.iconv.<input-encoding>.<output-encoding>/resource=flag.php

首先请求上面的 Payload 模板,并使用 BurpSuite 进行抓包,然后将 PHP 支持的字符编码作为参数替换 <input-encoding><output-encoding> 的内容:

配置完成后,开始爆破,然后按照返回包的长度进行排序,我们可以很快得到一个可用的 Payload:

 ?filename=php://filter/convert.iconv.CP1252.UTF-32%2a/resource=flag.php

0x02:参考资料

详解php://filter以及死亡绕过_filter绕过过滤-CSDN博客文章浏览阅读1.6w次,点赞49次,收藏274次。详解php://filter以及死亡绕过php://filterPHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。php:// — 访问各个输入/输出流(I/O streams)php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_ge_filter绕过过滤https://blog.csdn.net/woshilnp/article/details/117266628
php伪协议实现命令执行,任意文件读取_ctf php文件读取-CSDN博客该文章介绍了PHP伪协议中的file://和php://协议,以及利用data://协议实现了任意文件读取和命令执行的方法。文章还提供了具体的使用示例和注意事项。https://blog.csdn.net/qq_44418229/article/details/125197168

原文地址:https://blog.csdn.net/m0_73360524/article/details/144337476

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!