登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP网盘
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
[SWPUCTF 2021 新生赛]ez_unserialize
[SWPUCTF 2021 新生赛]ez_unserialize
[ 复制链接 ]
百谖夷
2025-6-9 08:34:47
概括
这是一道PHP反序列化的CTF赛题,本意是想用这道题对PHP反序列化进行一定的学习。
过程
我们打开赛题,看看内容
没有发现什么东西,看看他的页面代码
根据他的提示,感觉是存在一个robots.txt文件的,尝试访问一下。
进去看看。
果然如此
我们来分析一下这段代码
[/code]
我们进行代码分析:
[list=1]
[*]error_reporting(0); :关闭PHP错误报告。
[*]show_source("cl45s.php"); :显示这个文件里面的内容。
[*]创建了一个wllm类,然后在类里面定义了两个公共属性$admin与$passwd。
[*]创建了两个函数__construct()函数和__destruct()函数,这两个的功能分别是初始化admin和passwd以及判断admin和passwd的值是否为ture。
[*]如果admin==="admin",passwd==="ctf"的话,则echo出包含的flag文件
[*]通过GET方式上传一个p参数,并将其传递给unserialize()函数进行反序列化。
[/list]我们可以通过实例化这个类,分别给admin和passwd赋值,然后使用序列化函数进行序列化操作,最后通过p参数进行上传访问。
[size=6]脚本[/size]
[code]
复制代码
拿下flag
总结
这道赛题让我们可以简单入门php的反序列化,其中对于代码解析上存在一些疑问。比如这里的$this->admin与$this->passwd。这里通过Google了解到,$this在OOP中是一个伪变量,简单点说就是哪个对象调用,$this就是哪个变量。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
百谖夷
2025-6-9 08:34:47
关注
0
粉丝关注
15
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
猷咎
9988
5
凶契帽
9988
6
接快背
9988
7
氛疵
9988
8
恐肩
9986
9
虽裘侪
9986
10
里豳朝
9986
查看更多