web——php反序列化,pop链构造


前置知识

序列化

会变成这样

序列化解释

反序列化

public,private,protetced

当它是private时

当他是protetcted

当我在类之后在创建一个类

反序列化只可以改变变量,然后不可以自己调用里面的函数,只可以用它给出的函数调用

安全问题

------construct是构造函数

------destruct是析构函数

当我这么调用函数时

只会输出变量

当我没有创建新的对象,只将序列化后的字符串进行反序列化,它会调用析 构函数

test也被触发了,明明没有创建对象

to_string函数

所以会输出tostring

当我们这么做时

当我们不创建对象

输入 编译后的payload,也会自动执行析构函数

重要

跟前面一样,它会自动析构,

我们可以修改url

改成3,ver,他就会只执行ver

ctf反序列化问题

第一

第二

我们得尝试更改isvip中的值改为false,才可以输出flag

我们根据上面的知识3 将halse改成true

第三

前面要求要求密码相同,后面要求密码不同

改成这样

第四关

出现了多个class,还有eval

这里只可以用destruct这个魔术方法

而destruct这个函数下面的变量是上面new的一个对象

当我们直接将原函数序列化

所以我么改成backdoor

然后再改变code

第五关

出现了过滤意思是匹配o或c后面带有数字的,(i代表大小写)

之前的那个

o后面就有11,匹配到了无法继续执行

就如这样

所以我们就得将11改成+11这样就看避免数组直接接触

先将他序列化,然后再编码

第六关

前置知识

用php原生类

这个原生类是php自带的

__sleep()

序列化之前调用 的函数

它会调用sleep函数

然后不返回password

__wakeup()

__tostring()

echo会把对象当成字符串,所以会触发__tostring()

--invoke()

---call

当我们调用一个不存在的函数,这个函数不存在

------callstatic

__get()

__set()

_isset()

_unset()

__clone()

魔术方法总结

pop链前置知识(tostring和wakeup的使用)

l

当我想触发__tostring时,我们得使用上面的source,让source变成一个对象,这样------tostring()刚好能触发,所以我们这么构造

pop链构造(所以函数的触发)

找小括号,就是当成函数使用的变量

首先我们想得到flag就得使用involve这个函数,而它又由invoke来调用,所以我们就得想办法触发这个函数,就找下面有没有将变量当函数使用的就发现第22是这样的

构造推到

然后这么写

字符串逃逸(字符串减少)

序列化代码一般以}结束,以;来分隔

当我们再后面随便写东西,不会影响反序列化

加成员属性不会报错

它会将system给去掉,但最终无法反序列化,因为长度不一样

所以我们这么构造

例题

字符串增多

例题

wakeup()绕过

引用绕过

这么构造

session反序列化

第一种格式

第二种格式

第三种

漏洞(当seesion序列化和反序列化用不同的方式时会造成这个漏洞)

在save.php中,存入session并且将其序列化,当我们打开vul.php就会将这个session反序列化,就跟unserialize一样,自动执行,而默认的就会从|开始读

phar反序列化漏洞

一般改这个

例题

这里没有反序列化,但我们看到了file_exists这个函数

返回true说明有这个文件,就可以触发漏洞

就可以调用这个为协议

改成jpg也可以,都可以当初phar执行、

------------------图片取自b站橙子科技工作室,小迪

相关推荐
Freak嵌入式9 分钟前
MicroPython LVGL基础知识和概念:显示与多屏管理
开发语言·python·github·php·gui·lvgl·micropython
三七吃山漆1 小时前
BUUCTF-[BJDCTF2020]Mark loves cat
web安全·网络安全·buuctf
Freak嵌入式1 小时前
MicroPython LVGL基础知识和概念:时序与动态效果
开发语言·python·github·php·gui·lvgl·micropython
网络安全许木1 小时前
自学渗透测试第13天(DVWA配置与信息收集命令)
网络安全·渗透测试·信息收集·kali linux
盟接之桥2 小时前
盟接之桥®制造业EDI软件,打通全球供应链“最后一公里”,赋能中国制造连接世界
网络·安全·低代码·重构·汽车·制造
ZKNOW甄知科技2 小时前
数智同行:甄知科技2026年Q1季度回顾
运维·服务器·人工智能·科技·程序人生·安全·自动化
m0_738120722 小时前
网络安全编程——Python编写基于UDP的主机发现工具(解码IP header)
python·网络协议·tcp/ip·安全·web安全·udp
计算机毕业设计指导2 小时前
基于机器学习和深度学习的恶意WebURL检测系统实战详解
人工智能·深度学习·机器学习·网络安全
上海云盾商务经理杨杨2 小时前
WAF绕过技巧与防护加固:攻防实战,彻底封堵Web安全漏洞
安全·web安全
oi..3 小时前
《Web 安全入门|XSS 漏洞原理、CSP 策略与 HttpOnly 防护实践》
前端·网络·测试工具·安全·web安全·xss