首页 > 其他分享 >nssctf-2

nssctf-2

时间:2023-07-13 20:35:56浏览次数:41  
标签:__ 序列化 flag nssctf 字符串 php md5

try again,学到了

[SWPUCTF 2021 新生赛]ez_unserialize

点进去,查看源码,提示disallow,是一个爬虫协议robots.txt,访问
image.pngimage.png
得到源码

 <?php

error_reporting(0);
show_source("cl45s.php");

class wllm{

    public $admin;
    public $passwd;

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

        public function __destruct(){
        if($this->admin === "admin" && $this->passwd === "ctf"){
            include("flag.php");
            echo $flag;
        }else{
            echo $this->admin;
            echo $this->passwd;
            echo "Just a bit more!";
        }
    }
}

$p = $_GET['p'];
unserialize($p);

?> 

函数解析:
:::success
unserialize:编程术语,指的是将序列化的数据还原为原始数据结构的过程。
序列化是将数据结构转换成一串字节流(通常是字符串),以便在存储或传输时进行持久化或交换,序列化的数据可以被保存到文件、数据库或通过网络传输。
unserialize将序列化的字节流重新转换为原始的数据结构,这个函数可以用于将序列化的数据还原为原始对象、数组、哈希表等数据结构。
序列化的字符串一般有特定的格式,例如json、xml,比如在json中使用键值对的方式,键是字符串,而值的数据类型不限制,也可以进行嵌套。
反序列化不受信任的数据可能会存在安全风险,比如代码注入。
:::

_destruct用于定义一个对象在销毁(释放内存)之前执行的操作,用于执行一些资源释放或清理的操作,当对象不再被引用或执行脚本结束时,系统会自动销毁对象,在销毁前调用该方法,这种机制允许程序员在需要清理资源时候进行相应的处理,例如关闭文件,释放数据库连接、释放内存。
__construct:当创建对象时,该函数被调用。

代码审计:
wllm类里面有两个属性admin和passwd,还有一个构造函数和一个析构函数,在创建wllm类的对象会调用construct函数,然后设置admin=user,passwd=123456.在销毁wllm类时调用destruct函数,会检查admin=admin和passwd=ctf成立吗,如果成立则数据flag,否则输出其他。最后从get获取参数p的值,并将其反序列化为原始的php数据结构。
我们需要的是构造admin=admin,passwd=ctf成立
关于反序列化漏洞https://www.freebuf.com/articles/web/263584.html
反序列化漏洞利用总结 - FreeBuf网络安全行业门户
使用反序列化函数是会自动调用_wakeup魔术方法(前提是该函数存在),即为执行eval(phpinfo()

标签:__,序列化,flag,nssctf,字符串,php,md5
From: https://www.cnblogs.com/Focu4/p/17552049.html

相关文章

  • 【NSSCTF逆向】【2023题目】《easyAPK》《math》
    总览easyapk安卓逆向java加密扩展AESbase58mathelf五元一次方程算法逆向题目easyAPK解法第一次做有关安卓逆向的题目,没有工具没有思路,就结合别的师傅的wp来做题吧。下载下来是一个apk,尝试了一些模拟器,没能成功,拿出以前的手机安装看看。出来的是一个登录界面。那......
  • 【NSSCTF逆向】【2023题目】《stream》《a_cup_of_tea》
    总览streamRC4base64exe解包pyc反编译a_cup_of_teatea题目stream解法拿到题目是一个exe,先用exeinfo打开看看可以看到这个程序使用python写的,又是exe。所以就是常规的思路,exe解包到pyc文件,再对pyc文件进行反编译先是解包用pyinstxtractor.py里面找到它再来反编......
  • NSSCTF_Round13 web
    flask?jwt?1.信息收集题目提示这里告诉了这题涉及的内容2.开始探索(1)发现有注册,有忘记密码然后这里尝试admin登录,但失败所以直接注册一个用户 (2)注册后登录给出页面,点了拿flag,访问/getFlag路由但是告诉不是admin  然后根据题目信息里的提示应该就需要伪造admin......
  • 【NSSCTF逆向】【2023题目】《doublegame》《fake_game》《easy_pyc》《For Aiur》
    题目doublegame解法感觉还是蛮抽象的一题打开看看是一个贪吃蛇,也不懂啥直接放进ida看看有很多函数,不想一个个看了,直接看string感觉有很多有用的信息,题目信息又说是doublegame所以应该还有一个游戏,看红框的内容应该是这个迷宫了,点进去通过交叉引用看看ok就是一个迷宫,......
  • 【NSSCTF逆向】【2023题目】《easy_re》《世界上最棒的程序员》《Check_Your_Luck》《
    题目easy_re解法很简单的一道题考的就是upx脱壳base64加解密拿到文件upx壳upx-d脱壳无壳放进ida很明显关键在于这个判断的两个字符串是啥。现在我们看看我们输入的s变成了什么。进入funcfunc的内容主要是对s进行操作然后给encode_这次我看明白了,这个很明显......
  • [NSSCTF 2022 Spring Recruit]easy C
    C的源代码,查个壳:一般都是64位,直接双击吧,换个界面,成天看IDA也不好:也是简单的一个异或加密,上个脚本就好了,不多说啥:Des='d`vxbQd'flag=''foriinDes:flag+=chr((ord(i)^2)-1)print(flag)拿到NSSCTF......
  • NSSCTF Round7 WP
    NSSCTFRound7WP还不错,一个全场唯一解一个二血,队友还拿了一个一血(KoH)两个二血WebF|ez_RCE|Doxxxaction=1'&data=;cat/flag%23'2|OoO|DoxxxPOST/Ns_SC......
  • NSSCTF周赛Misc-hint1
    O​​​​‎‏‎​​​​‎‏‍​​​​‏‎​​​​​‏​‌​​​​‍​‏​​​​‍​‍​​​​‌‏‌​​​​‏​​​​​​‏​‌​​​​‎‏‏​​​​‏‍‌​​......
  • NSSCTF-SWPUCTF2021新生赛之fakerandom
    Day1NSSCTF[SWPUCTF2021新生赛]fakerandom下载源件之后是一个py文件,打开后源码如下随后看到了一个随机数种子,关于随机数种子的知识我了解的不多,只在学校的石头剪刀......