0
点赞
收藏
分享

微信扫一扫

2022/3/28 PHP反序列化

素锦时年_1b00 2022-03-30 阅读 55

小迪

在这里插入图片描述

PHP反序列化

未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化的过程,从而导致代码执行,SQL注入,目录遍历登不可控后果。在反序列化的过程中自动触发了某些魔术方法。

serialize() //将一个对象转换成一个字符串
unserialize() //将字符串还原成一个对象

无类的情况
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

案例-无类问题-ctf

题目点登录没有反应
在这里插入图片描述
右键查看源代码,有一个admin.css
在这里插入图片描述

第一行提示传参?29524
在这里插入图片描述对cookie进行反序列化等于key就可以flag
对key序列化
在这里插入图片描述注意是if elseif,如果GET传参是29524的话就不执行flag了
抓包修改
在这里插入图片描述
在这里插入图片描述

案例-有类魔术方法触发

在这里插入图片描述
__construct()//创建对象时触发
__destruct() //对象被销毁时触发
__call() //在对象上下文中调用不可访问的方法时触发
__callStatic() //在静态上下文中调用不可访问的方法时触发
__get() //用于从不可访问的属性读取数据
__set() //用于将数据写入不可访问的属性
__isset() //在不可访问的属性上调用 isset()或 empty()触发
__unset() //在不可访问的属性上使用 unset()时触发
__invoke() //当脚本尝试将对象调用为函数时触发

PHP中的几个特殊的魔术方法。

1.__construct():当对象创建(new)时会自动调用,但在unserialize()时是不会自动调用的(构造函数) 

2.__destruct():当对象操作执行完毕后自动执行__destruct()函数的代码。

3.__wakeup():unserialize()时自动调用。

案例-网鼎杯

不是很懂,这里记得在看一遍

举报

相关推荐

0 条评论