当前位置:网站首页>xctf攻防世界 Web高手进阶区 unserialize3
xctf攻防世界 Web高手进阶区 unserialize3
2022-07-28 02:52:00 【l8947943】
0x01. 进入环境
显示一段源代码:
class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
?code=
0x02. 问题分析
0x02_1. 代码审计
首先,定义一个“xctf”类,这个类有两个成员属性,分别是 flag 和__wakeup。接下来是 __wakeup方法的实现,再就是最后一行变量 code 没有写完,估计就是想让我们传参进去完成它了。
这里的 __wakeup 函数是一个所谓的“魔术方法”,它在反序列化时会先于其他函数被调用,执行它的语句。
这就意味着,如果我们直接构造一个字符串,那么这个 __wakeup_ 会先一步执行,并直接 exit,这可不是我们想要的结果。
也就是说,我们构造的code的参数传入后,先被__wakeup方法首先调用。因此我们想办法绕过该函数即可。
0x02_2. 进行尝试
阅相关大神WP后才知道,一个漏洞(CVE-2016-7124)可以通过 使序列化字符串中表示对象属性个数的值大于真实的属性个数,以此跳过__wakeup 的执行。
首先,序列化字符串的标准格式:O:<类名的长度>:"<类名>":<成员属性的个数>:{S:<成员属性名的长度>:"<成员属性名>";......} 这道题的话,如果要对 xctf 类进行正确的序列化,那么它的字符串应该是:O:4:"xctf":1:{S:4:"flag";S:3:"111";}
在线测试地址:https://www.dooccn.com/php/,使用如下代码即可验证。
<?php
class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
}
$a = new xctf();
print(serialize($a));
?>
0x02_3. 跳过__wakeup()函数
将序列化的字符串进行修改,修改序列化字符串中的属性个数,并完成字符串的拼接,以get方法传出,地址拼接如下:
http://61.147.171.105:56068/?code=O:4:“xctf”:2:{s:4:“flag”;s:3:“111”;}
得到最终答案,答案为:cyberpeace{d0e766c698b67400e771051e6b8301aa}
参考:
边栏推荐
- 53. Maximum Subarray最大子数组和
- redis网络模型解析
- Defect detection of BP SVM system design of leaf defect detection
- My approval of OA project (meeting inquiry & meeting signature)
- 【类的本质(Objective-C语言中)】
- 谈一谈百度 科大讯飞 云知声的语音合成功能
- 版本兼容的问题
- 汇总了50多场面试,4-6月面经笔记和详解(含核心考点及6家大厂)
- 数字孪生智慧楼宇可视化平台实现对园区企业、公众服务一体化
- Raspberry pie development relay control lamp
猜你喜欢

"Introduction to engineering electromagnetic field" after class exercises with answers

PCB丝印如何摆?请查收这份手册!

如何一键进行重装Win11系统
![[SAML SSO solution] Shanghai daoning brings you SAML for asp NET/SAML for ASP. Net core download, trial, tutorial](/img/7d/c372dba73531f4574ca3d379668b13.jpg)
[SAML SSO solution] Shanghai daoning brings you SAML for asp NET/SAML for ASP. Net core download, trial, tutorial

My approval & signature function of conference OA project

线程基础

QFileDevice、QFile、QSaveFile、QTemporaryFile

Raspberry pie development relay control lamp

关于湖北文理学院平衡信标组的疑问回应

CAD creation group is not combined?
随机推荐
ELS timer
VI command details
GNU 通用公共许可证 v2.0 GNU GENERAL PUBLIC LICENSE
如何使用JDBC操作数据库
数字孪生技术驱动智能工厂减负赋能提升运维效益
基于OpenCV的轮廓检测(3)
叶子识别 颜色的特征提取 缺陷检测等
STM32之IO模拟串口篇
Original title of Blue Bridge Cup
ELS keyboard information
在线问题反馈模块实战(十六):实现查详情功能
树莓派开发继电器控制灯
Stm32f407 ------- FPU learning
c#——switch case语句
20条心灵鸡汤唯美句子,句句温情暖心!
Softek Barcode Reader 9.1.5
C # set TextBox control not editable
Redis经典面试题总结
Shell:资源监控脚本和高负载报警
IronOCR for .NET 2022.8