攻防世界 unserialize3

简介: 攻防世界 unserialize3

 

看题目提示,这里是get传参code

审计一下代码,__wakeup()会直接退出然后返回bad request,那就没得玩了。也没有说哪里的程序可以返回flag,估计题目是让我们绕过这个魔术方法,然后返回flag给我们。

__wakeup()执行漏洞:

只存在于版本:PHP5 < 5.6.25、PHP7 < 7.0.10

在进行unserialize的时候,首先查看有无该函数有的话

就会先执行他。

一个字符串或对象被序列化后,如果其属性被修改,则不会执行__wakeup()函数。

绕过方式:

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

例如:O:4:"User":2:{s:3:"age";i:20;s:4:"name";s:4:"daye";}中将变量个数2(s:3:"age";表示第一个变量的名字,i:20;表示第一个变量的值,因此像这种东西,都是成对出现的,几对就有几个变量)修改为3即可。

开始解题:

构造exp

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

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

Payload:

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

做题时参考的博客,我觉得写的很好,看完对反序列化的原理理解深了一点。

攻防世界unserialize3题解_Leng_tian的博客-CSDN博客

目录
相关文章
|
存储 前端开发 安全
GET 和 POST 请求:理解它们之间的区别和适用场景
GET 和 POST 请求:理解它们之间的区别和适用场景
|
安全 网络安全 数据安全/隐私保护
[CTF/网络安全] 攻防世界 weak_auth 解题详析
题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。
857 0
|
数据安全/隐私保护
攻防世界web-----easyupload
攻防世界web-----easyupload
|
缓存 安全 PHP
攻防世界06-get_post
攻防世界06-get_post
|
存储 安全 PHP
03攻防世界-unserialize3
03攻防世界-unserialize3
|
存储 Linux Android开发
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。以前很多赛项都是使用vol2.6都可以完成,但是由于操作系统更新,部分系统2.6已经不支持了,如:Win10 等镜像,而Volatility3是支持这些新版本操作系统的。
4107 0
|
SQL Web App开发 网络安全
渗透测试-浏览器插件-Hackbar的安装与使用教程
渗透测试-浏览器插件-Hackbar的安装与使用教程
渗透测试-浏览器插件-Hackbar的安装与使用教程
|
开发框架 安全 .NET
Web安全-一句话木马
Web安全-一句话木马
2278 5
攻防世界---misc---适合作为桌面
攻防世界---misc---适合作为桌面