首页 > 其他分享 >ctfshow反序列化 刷题随笔

ctfshow反序列化 刷题随笔

时间:2022-10-26 22:55:05浏览次数:63  
标签:username password no echo flag 刷题 user 序列化 ctfshow

刷题随笔

web254

题目
image
直接传参,没啥好说的
image

web255

题目

<?php error_reporting(0);
highlight_file(__FILE__);
include('flag.php');

class ctfShowUser{
    public $username='xxxxxx';
    public $password='xxxxxx';
    public $isVip=false;

    public function checkVip(){
        return $this->isVip;
    }
    public function login($u,$p){
        return $this->username===$u&&$this->password===$p;
    }
    public function vipOneKeyGetFlag(){
        if($this->isVip){
            global $flag;
            echo "your flag is ".$flag;
        }else{
            echo "no vip, no flag";
        }
    }
}

$username=$_GET['username'];
$password=$_GET['password'];

if(isset($username) && isset($password)){
    $user = unserialize($_COOKIE['user']);    
    if($user->login($username,$password)){
        if($user->checkVip()){
            $user->vipOneKeyGetFlag();
        }
    }else{
        echo "no vip,no flag";
    }
}

构造反序列化

<?php 
class ctfShowUser{
   public $isVip;
  public function __construct(){
   $this->isVip=true;
}
}
$a=new ctfShowUser();
echo serialize($a);

image
得到序列串O:11:"ctfShowUser":1:{s:5:"isVip";b:1;}
image
通过设置cookie传递后并没有发现flag

于是在本地试一下传参¥$_Cookie变量会变成什么
image
猜测应该是Cookie的user参数中的分号导致后面的序列串被分隔

通过URL编码即可
image

标签:username,password,no,echo,flag,刷题,user,序列化,ctfshow
From: https://www.cnblogs.com/IceSeclude/p/16830487.html

相关文章

  • .Net内置JSON序列化中文问题
    今天在用System.Text.Json序列化的时候遇到了中文序列化的一个问题,示例如下:JsonSerializer.Serialize(new{Name="你好"});预期结果是:{"Name":"你好"},但得到结果如下......
  • Flutter(九)Json序列化与反序列化(转Model)
    在日常开发中JSON的序列化与反序列化是一个常见的操作;而Dart语言不支持反射,运行时反射会影响Dart的treeshaking(摇树优化),treeshaking可以“抖掉”不需要使用的代码,显著......
  • java反序列化漏洞cc_link_one
    CC-LINK-one前言这里也正式进入的java的反序列化漏洞了,简单介绍一下CC是什么借用一些官方的解释:ApacheCommons是Apache软件基金会的项目,曾经隶属于Jakarta项目。Commons......
  • 刷题——Python篇(0)Hello World
    前言刷题对语言的初学者是很有帮助的。在刷题过程中,可以查漏补缺,巩固知识点。此外对将来的招聘,这也是一种提前的练习。有很多刷题的网站:CSDN的学习版块​​​牛客网​​​:......
  • 刷题——Python篇(1)输入输出
    #摘要第一部分输入输出非常简单,用到的知识点有`print()`:输出字符串`input()`:读取字符串`int()`:类型转换`f"{x:.2f}"`格式化字符串虽然简单,但是也有一些需要注意的地方。比......
  • 【HDLBits刷题日记】06 Basic Gates
    Exams/m2014q4hmoduletop_module(inputin,outputout);assignout=in;endmoduleExams/m2014q4imoduletop_module(outputout);assignout=......
  • 剑指 Offer 37. 序列化二叉树 - 力扣(LeetCode)
    剑指Offer37.序列化二叉树-力扣(LeetCode)题目大意:将一棵二叉树序列化成字符串,然后通过该字符串可以重新构造出二叉树思路:看到将二叉树转化成字符串,首先想到的......
  • 刷题 栈和队列3
    代码随想录LeetCode239. 滑动窗口最大值carl优先级队列#单调队列思路优先级队列解法:窗口移动过程中,不断将新元素加入优先级队列,如果最大值不在范围内,则弹出最大......
  • ctfshow-web入门信息收集
    web1CTRL+u解决web2同web1web3http头中web4查看robots.txt访问/flagishere.txtweb5访问phps下载源码web6有www.zip,下载拿到flagweb7git的源码泄露,直......
  • xml 反序列化处理
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Net;usingSystem.IO;usingSystem.Collections.Specialized;......