[MRCTF2020]Ezpop
先创建2个show对象a,b,在最后反序列化的时候$a=new Show()会调用__wakeup()函数,此时a->source是b,b此时是一个Show()对象,就会调用b里面__toString()方法,此时b里面的str是Test()对象,Test()对象没有source变量,便会调用Test()里面的__get()方法,将Test()类里面的p创建为Modifier(),然后就会调用Modifier()里面的__invoke()方法,执行append()函数,实现文件执行的功能。
原创
2023-01-01 10:30:06 ·
223 阅读 ·
0 评论