web buuctf [极客大挑战 2019]PHP1

1.根据题目,存在源代码备份文件,flag应该在备份文件里,需要扫描后台的目录

我没有别的啥工具,用的dirsearch,这个可以从github上直接下,然后解压之后就可以直接用

cmd 打开 py dirsearch.py -u 路径  -e * -s 4(简单解释一下,u后填上需要爆破的后台路径,e是必填项,填上*因为确实不知道格式,重点说一下-s 这后面跟的是一个浮点,表示的是请求的延迟,这道题写2也行,因为爆破需要大量的请求,会爆出一堆429,这个http错误代码表示的就是因为请求太多,后台拒绝了请求,导致无法访问,我看网上有些直接从429上爆出压缩文件的,这个都是错的,都是遍历了,但是无有效反馈,加上延迟,就会正常显示200。具体的dirsearch的方法我收藏了个中文手册,有需要可以简单学习一下)

2.爆到aba8bbe3-6250-4e78-b2b6-cf5b1e99f636.node4.buuoj.cn:81/www.zip

下载解压压缩包,js文件一般不会存flag,查看flag,index,class这三个php文件

通过代码审计,Index获得select参数,再进行反序列化,传入class文件,class文件里当username=admin password=100,且绕过wakeup函数时能得到flag

3.先进行反序列化解析,可以参考相关博客,我直接写出payload

index.php?select=O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";}

4.wakeup函数绕过的漏洞是,当序列化函数的里的属性个数大于真实个数的时候,即可绕过,所以:

index.php?select=O:4:"Name":3:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";}

5.函数没有走完,仔细审计了一下,在构造序列化函数的时候,因为对象是private,所以构造序列化的时候:

index.php?select=O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}

 主要知识点是序列化和反序列化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值