• 2. 文件包含(150)


    文件包含 (150)

            -------南京邮电大学ctf : http://4.chinalover.sinaapp.com/web7/index.php

     

    从这道ctf的网址 :

    http://4.chinalover.sinaapp.com/web7/index.php?file=show.php

    我们明显感受到了文件包含的信息

    文件包含漏洞

    先了解一下php://filter

    php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。
    
    php://filter
    
    php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和
     file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。
    
    php://filter 目标使用以下的参数作为它路径的一部分。 复合过滤链能够在一个路径上指定。详细使用这些参数可以参考具体范例。
    
    
       名称                                     描述
    
    resource=<要过滤的数据流>      这个参数是必须的。它指定了你要筛选过滤的数据流。
    
    read=<读链的筛选列表>          该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。
    
    write=<写链的筛选列表>         该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。
    
    <;两个链的筛选列表>            任何没有以 read= 或 write= 作前缀 的筛选器列表会视情况应用于读或写链。

    同时我也借此机会学到了文件读取的相关知识。

    • include “test.php”php文件包含,在执行流中插入写在其他文件中的有用的代码。读取的时候也是数据流形式,因此可以使用php://filter进行过滤,返回值为0,1。
    • readfile(“test.php”)是将文件以数据流的形式读取过来,并不会执行,但会在前台浏览器上进行解析。返回值是字节数多少。
    • file_get_contents(“test.php”)返回值为文本内容

    此题运用的就是关于数据流过滤的文件包含,我们一般在进行文件包含的时候都这么写include “test.php”获得的就是test.php直接解析出来。但如果运用readfile(“test.php”) 就不进行解析,导致无法在浏览器前台进行显示。那么问题来了看题

    它让我点击它 我一下子就点了他!!! 

    出来了个这个URL

    http://4.chinalover.sinaapp.com/web7/index.php?file=show.php

    典型的文件包含漏洞我们可以通过构造含有漏洞的语句,查看想要看的代码

    file=php://filter/read=convert.base64-encode/resource=index.php

    注解:

    1. php://filter/可用于处理打开的数据流,起到过滤作用。如果源文件为.php则很有可能在前台显示不出来。
    2. 此时我们采用的方法是,先让文件转化为base64格式(convert.base64-encode)然后再输出,这样不论是什么格式的文件都可以在前台输出。
    convert.base64-encode和 convert.base64-decode使用这两个过滤器等同于分别用 base64_encode()和 base64_decode()函数处理所有的流数据。 
    
    convert.base64-encode支持以一个关联数组给出的参数。如果给出了 line-length,base64 输出将被用 line-length个字符为 长度而截成块。
    
    如果给出了 line-break-chars,每块将被用给出的字符隔开。这些参数的效果和用 base64_encode()再加上 chunk_split()相同。

           3.再次解码就可得到源代码,怎么样是不是很神奇啊!

             看图片: 

    看见了base64编码!! 
    python解码就行啦,看图 

    就可以得到flag

  • 相关阅读:
    SpringMVC核心分发器DispatcherServlet分析[附带源码分析]
    SpringMVC异常处理机制详解[附带源码分析]
    SpringMVC重定向视图RedirectView小分析
    容器中使用iptables报错can't initialize iptables table Permission denied (you must be root)
    nohup介绍
    docker创建ceph集群
    maven单元测试设置代理
    Kubernetes服务之“运行单实例的有状态服务”
    关闭chrome浏览器的developer tools
    Kubernetes服务之StatefulSets简介
  • 原文地址:https://www.cnblogs.com/bmjoker/p/8877336.html
Copyright © 2020-2023  润新知