攻防世界web进阶之unserialize3

这个题目不难,主要是从这个题我学会了反序列化漏洞的基本原理。核心思想就是:当进行反序列化的时候,字符串会被发序列化为对象,而对象中又可能有一些危险函数,以及整个过程中会触发一些魔法函数,进而导致可空字符串变为可执行的代码。
还需要练几个类似的题。

题目:

unserialize3

原理:

反发序列化漏洞(对象注入)

环境:

sublime,chmore

解题过程:

简单访问:
攻防世界web进阶之unserialize3_第1张图片
可以看到,在xctf这个类里面,有一个从新定义的魔法函数__weakup,这个魔法函数在反序列化的时候会被触发。我们尝试访问并输入正常的xctf类的时候,就会返回bad requedt
攻防世界web进阶之unserialize3_第2张图片
说明后台进行了发序列化,并执行了__weakup这个重新定义的魔法函数。所以我们需要绕过这个函数,经查询资料,发现,当反序列化的对象的属性与目的对象的属性不同时,就不会触发__weakup这个魔法函数,也就是我们需要构造一个xctf的类,并且序列化之后,稍微修改,让其属性与原来的属性不同就可以绕过了。
攻防世界web进阶之unserialize3_第3张图片
标红的是表示这个类里面有几个属性,本来就一个,我们给他改为2。就攻击成功了。
反序列化漏洞还有许多知识,附上甜美小姐姐讲解php反序列化漏洞原理与实践

你可能感兴趣的:(ctf-Web)