首页 > 其他分享 >攻防世界WEB(新手模式)3-unserialize3

攻防世界WEB(新手模式)3-unserialize3

时间:2024-07-18 08:59:29浏览次数:17  
标签:WEB 攻防 对象 unserialize3 flag 111 wakeup 序列化 xctf

进题目,可以发现这是一个反序列化的题目。

这段代码定义了一个名为xctf的类,其中包含一个公共属性$flag,初始值为'111',并且定义了一个__wakeup()魔术方法。

魔术方法 __wakeup()

__wakeup()方法在对象反序列化时被调用。这段代码中,当该类对象被反序列化时,将立即调用exit('bad requests'),终止脚本执行并输出“bad requests”。

潜在的反序列化漏洞

反序列化漏洞通常发生在未经过滤的用户输入被反序列化的情况下。如果攻击者能够控制反序列化的数据,他们可能会注入恶意对象,触发类中的特定方法或属性,导致意外行为。

分析 URL 参数

假设我们有一个URL参数?code=,这通常用来传递用户输入。在反序列化时,如果$_GET['code']包含序列化对象数据,就可能触发反序列化漏洞。

下面复制这个类的代码,改写成php

<?php
class xctf
{
    public $flag = '111';
 
    public function __wakeup()
    {
        exit('bad requests');
    }
}
$a = new xctf();
print(serialize($a));
?>

攻击者可能会构造序列化对象数据,使__wakeup()方法被调用,从而终止脚本执行。例如:


$payload = 'O:4:"xctf":1:{s:4:"flag";s:3:"111";}'; // 序列化对象数据

通过如下URL传递:


?code=O:4:"xctf":1:{s:4:"flag";s:3:"111";}

这里介绍一下序列化对象后字符串的含义:



O:表示对象Object

4:表示对象的字符串长度为4

“xctf”:表示对象的名称

1:表示对象里面有一个变量

s:表示变量的数据类型是string型

4:表示变量的名称长度为4

“flag”:表示变量的名称

s:表示变量类型

3:表示变量长度

“111”:是变量值

当序列化字符串中属性个数大于实际属性个数时,不会执行反序列化,从而跳过wakeup()
原本:O:4:"xctf":1:{s:4:"flag";s:3:"111";}

改为:O:4:"xctf":3:{s:4:"flag";s:3:"111";}

最后得出flag:cyberpeace{99ddb825a76b2f91147379adca6661df}

标签:WEB,攻防,对象,unserialize3,flag,111,wakeup,序列化,xctf
From: https://blog.csdn.net/m0_74138139/article/details/140511655

相关文章

  • 攻防世界supersqli
    supersqliSQL注入的常规思路是判断注入点,尝试后发现注入点为’判断字符数量得出数量为2然后尝试联合注入发现select等字符被过滤,尝试堆叠注入-1';showdatabases;#猜测在supersqli的可能性会大一点(也可以挨个尝试)-1';usesupersqli;showtables;#查询具体表-......
  • test_web3
    web3题目更简单的web题分析代码出现include,猜测是文件包含漏洞。通过data://数据流+php命令执行函数查询当前工作目录下的内容,使用hackbar需要先进行url编码:得到flag文件名和首页文件:?url=data://text/plain,%3C%3Fphp%0Asystem('catctf_go_go_go')%3B%......
  • test_web4
    web4题目分析和上一题显示的页面一样,用同样的方法尝试注入:出现报错:看来这题相比上一题增加了过滤。使用shell_exec同理:换个思路,尝试使用一句话木马连接服务器后台。根据发回的响应包可以确定这题使用的是nginx服务器:看看访问日志先,?url=/var/log/nginx/acc......
  • test_web4_2
    根据发回的响应包可以确定这题使用的是nginx服务器:看看访问日志先,?url=/var/log/nginx/access.log:尝试使用日志包含写入一句话木马,往User-Agent字段传入一句话木马<?php@eval($_POST['web4']);?>传入后的日志增加一条记录:使用中国蚁剑连接日志文件,在/var/www/f......
  • test_web4_1
    web4题目分析和上一题显示的页面一样,用同样的方法尝试注入:出现报错:看来这题相比上一题增加了过滤。使用shell_exec同理:换个思路,尝试使用一句话木马连接服务器后台。......
  • 全面Burp Suite教程:深入掌握Web应用安全测试的利器
    目录Burpsuite简介1.1什么是BurpSuite?1.2BurpSuite的主要功能和组件Burpsuite安装与设置2.1下载和安装BurpSuite2.2Burpsuite设置字体2.3Burpsuite中文乱码问题Scanner模块(扫描与漏洞检测)3.1使用Scanner模块进行自动扫描3.1.1新建扫描3.1.2设置扫描范围3.1......
  • Angular:构建现代Web应用的强大框架
    ......
  • Datawhale AI 夏令营 全球Deepfake攻防挑战赛
                    近日有学习多模态技术的需求,碰巧撞上Datawhale的夏令营,初看要求颇高,既要打卡还要分享,心中顿起燥心,转念一想,其实不失为一次磨练机会,为提高自己逃课摆烂的成本,邃开始撰写自己第一篇公开的学习笔记,若多日后看见虎头蛇尾的学习笔记,想必羞愧难当。......
  • Datawhale AI 夏令营 全球Deepfake攻防挑战赛 task2
    数天未见,进步如何?距第一篇笔记发布已过多日,在笔记中立下的flag推动下再次打开CSDN创作中心来记录学习进展。首先让我来对竞赛项目和datawhale提供的baseline做一个简单的梳理:balseline网址:https://www.kaggle.com/code/littlejian/deepfake-ffdv-baseline项目要求:判断一......
  • Ubuntu+Docker+Ollama+WebUI
    Ubuntu备份源文件sudocp/etc/apt/sources.list/etc/apt/sources.list.backup编辑/etc/apt/sources.list#默认注释了源码镜像以提高aptupdate速度,如有需要可自行取消注释debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/focalmainrestricteduniversemultivers......