南宁江南区网站制作价格,郑州网站建设彳汉狮网络,网站的图片要会员才能下载怎么做,标题制作网站php反序列化
两个关键函数#xff1a;
序列化 serialize()
反序列化 unserialize()
五个魔法函数#xff1a;
__construct()#xff1a;创建对象时调用
__destruct()#xff1a;对象销毁时调用
__toString()#xff1a;当一个对象被当作一个字符时用
__wakeup()
序列化 serialize()
反序列化 unserialize()
五个魔法函数
__construct()创建对象时调用
__destruct()对象销毁时调用
__toString()当一个对象被当作一个字符时用
__wakeup()对象序列化之后调用
__sleep()对象序列化之前调用
这一关是更基础的属性直接输出型漏洞魔法函数在本关没有利用到这里给一个魔法函数典型利用场景
pikachu例题
先去找php后端代码打开unser.php 这段关键代码的逻辑大概是用户提交一个序列化的字符串$_POST[o]令$s $_POST[o]然后php后端代码用unserialize()函数把它变成新的对象 $unser如果这个反序列化函数执行成功那么红框内代码 $unser-test 就会执行也就是把$unser体现在页面上反之报错提醒 我们按照注释提示构造代码成功回显 然后我们来分析一下为什么这么构造payload
payload分析
O:1:S:1:{s:4:test;s:29:scriptalert(xss)/script;}
O:长度:类名:属性数量:{属性列表}
代码碎片含义OObject后面跟着我们对象的完整结构a:数组s字符串i整数...... 1 对象名长度这里对象是S“S”对象名类名1对象的属性个数这是只有test一个属性s:4:test属性名sstring 缩写;内容字符串长度:自定义内容s:29:scriptalert(xss)/script属性值
并且在属性列表内部必定是属性名属性值成对出现举个栗子
O:4:User:2:{s:8:username;s:5:admin;s:8:password;s:6:123456;}
其中第一个s:8....说明第一个username属性名后面跟的s5....就是username的值依次类推后面的一组
所以这里就是属性名为test的属性值scriptalert(xss)/script
❀❀❀完结撒花❀❀❀