Buuweb 极客大挑战 2019PHP 1

打开一看提示说有备份网站习惯,用工具扫一下发现了www.zip得到了网站备份。

得到了3个php 直接看到了flag.php打开一看
在这里插入图片描述
结果错误,怎么可能这么简单,orz

直接看另外两个php中的源码
index.php
index.php和class.php
在这里插入图片描述一看就是反序列化
index.php在传入select时会将select进行反序列化,而class.php中的wekeup会在select被序列化的时候执行,把你传入的username改为guest导致无法访问

O:4:"Name":2:{s:14:"%00Name%00username";s:5:"asdfa";s:14:"%00Name%00password";i:100;}

读代码可以看见username必须为admin&password必须为100

username和password是私有变量,变量中的类名前后会有空白符,而复制的时候会丢失,所以要加上%00

因为私有和protect序列化之后格式不一样所以要加入%00Name%00然后%00不可以替换为空格,应为这里的%00表示不可见字符

这时候可以看见
在这里插入图片描述
没有绕过_wakeup替换成了guest而导致无法访问

__wakeup()函数漏洞原理:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行

这里只需要将Name后面2改为大于2的就行了
在这里插入图片描述

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值