当前位置:首页 » 《随便一记》 » 正文

XCTF-攻防世界CTF平台-Web类——10、unserialize3_Onlyone_1314的博客

24 人参与  2022年05月18日 14:50  分类 : 《随便一记》  评论

点击全文阅读


打开题目地址:
在这里插入图片描述

发现是一段残缺的php代码
题目名称unserialize3就是反序列化,要求我们通过反序列化漏洞绕过__wakeup()函数。
相关概念:
序列化:
  序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
php的序列化和反序列化
  php的序列化和反序列化由serialize()和unserialize()这两个函数来完成。serialize()完成序列化的操作,将传入的值转换为序列化后的字符串;而unserialize()完成反序列化的操作,将字符串转换成原来的变量。
serialize(mixed $value): string
  serialize()返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方:
O::""::{<field name 1><field value 1>…}
在这里插入图片描述

  当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。
unserialize(string $str): mixed
  unserialize()对单一的已序列化的变量进行操作,将其转换回 PHP 的值。
  若被反序列化的变量是一个对象,在成功地重新构造对象之后,PHP 会自动地试图去调用 __wakeup() 成员函数(如果存在的话)。
魔术方法
  PHP中以两个下划线开头的方法,__construct(), __destruct(), __call(), __callStatic(),__get(), __set(), __isset(), __unset (),__sleep(),__wakeup(),__toString(),__set_state(),__clone(),__autoload()等,被称为"魔术方法"(Magic methods)。这些方法在一定条件下有特殊的功能。
与序列化和反序列化的魔术方法主要是:

__construct()	//当一个对象创建时被调用
__destruct() 	//对象被销毁时触发
__wakeup() 	//使用unserialize时触发
__sleep() 	//使用serialize时触发
__toString() 	//把类当做字符串时触发
__get() 	//用于从不可访问的属性读取数据
__set() 	//用于将数据写入不可访问的属性

所以我们先写一个php调用序列化函数的代码:

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

在线运行php代码:
在这里插入图片描述

  得到一个序列化对象O:4:“xctf”:1:{s:4:“flag”;s:3:“111”;},其对象所在类名是"xctf"、该对象有一个属性,属性名为一个长度为4的字符串"flag"、该属性值为一个长度为3的字符串"111"
所以我们传入序列化对象的payload格式就是:
http://111.200.241.244:64924/?code=O:4:“xctf”:1:{s:4:“flag”;s:3:“111”;}
在这里插入图片描述

  之后我们就是要在执行unserialize()反序列化之后绕过__wakeup()函数,_wakeup()函数漏洞原理:在类对象属性个数超过实际个数时就会不执行wakeup函数。
  例如当前xctf类对象只有1个参数属性$flag,序列化结果为:O:4:“xctf”:1:{s:4:“flag”;s:3:“111”;}
  如果将xctf对象个数改成比1大的数,就会绕过wakeup。修改后的结果:O:4:“xctf”:2:{s:4:“flag”;s:3:“111”;}
修改之后的payload:
http://111.200.241.244:64924/?code=O:4:“xctf”:2:{s:4:“flag”;s:3:“111”;}
在这里插入图片描述

得到flag:cyberpeace{54ebe7ec48c8aaa10ccc64cb338f080c}

参考的网址:
https://baike.baidu.com/item/%E5%BA%8F%E5%88%97%E5%8C%96/2890184?fr=aladdin
https://www.php.net/manual/zh/function.serialize.php
https://www.php.net/manual/zh/function.unserialize.php
https://blog.csdn.net/silence1_/article/details/89716976


点击全文阅读


本文链接:http://zhangshiyu.com/post/40387.html

序列化  对象  函数  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 全文缘来是你早注定良心(萧千雅胡一阳)列表_全文缘来是你早注定良心
  • 「爱让我溺毙而亡」小说节选推荐_[羽柔乔羽柔林絮]章节限时抢先看‌
  • 此去经年人未还霍沉洲沈青禾后续结局霍沉洲
  • 山海不相逢内容精选(温逸尘沈衿)_山海不相逢内容精选(温逸尘沈衿)
  • (番外)+(全书)霍沉洲沈青禾此去经年人未还(霍沉洲沈青禾)_(霍沉洲沈青禾此去经年人未还)列表_笔趣阁(霍沉洲沈青禾)
  • (番外)+(全书)霍沉洲沈青禾(此去经年人未还霍沉洲沈青禾)完结_(霍沉洲沈青禾)列表_笔趣阁(此去经年人未还霍沉洲沈青禾)
  • 「重回八零,拒绝替嫁冲喜」章节彩蛋限时释出‌_卫东玉兰苏夏人气小说未删减节选
  • 重生七零祁同伟不再是农民儿子结局+番外纯净版全书免费重生七零祁同伟不再是农民儿子结局+番外纯净版全书免费
  • 傅雅宁的神女老婆,却在背地承欢作乐顾尘傅雅宁全书在线
  • 全文神女老婆,却在背地承欢作乐全局(顾尘傅雅宁)列表_全文神女老婆,却在背地承欢作乐全局
  • (番外)+(全书)此去经年人未还全书+番外+后续免费下载_(沈青禾霍沉洲)此去经年人未还全书+番外+后续列表_笔趣阁(沈青禾霍沉洲)
  • 完结文毁容的姐姐和瞎眼的我离开后,姜家两兄弟悔哭了+后续列表_完结文毁容的姐姐和瞎眼的我离开后,姜家两兄弟悔哭了+后续(林梦婉)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1