解析-[极客⼤挑战 2019]PHP(获取flag)
第一步:打开网站(使用下方连接可以直接进入)
https://buuoj.cn/challenges#
[%E6%9E%81%E5%AE%A2%E5%A4%A7%E6%8C%91%E6%88%98%202019]PHP
进去之后是一个很有意思的一个主页,但没有什么信息,F12也看不到需要的信息
信息我们就需要复制URL去目录扫描工具,扫一下其他子目录
这个子目录进去之后自动给我下载了一个压缩包
我们解压出来看看
里面就这些文件,我们先看index.php文件,因为访问网站基本都是访问目录下的index文件
短短三行代码可以分析出有用的信息,
1:这里导入了class.php文件,指明了待会可以重点检查的文件
2:这里需要用GET方式传参,参数名为select
3:有反序列话 ,看见这个要第一时间想到wakeup魔术方法,所以我们去class.php里面看看有没有wakeup方法
可以看见,这里面有个wakeup方法,功能是给username属性赋值,但也没有其他作用了,到此为止,有没有什么其他可以进行的头绪,到这index.php文件就执行结束了,
注意!注意!注意!
当一个脚本文件结束的时候会自动执行__destruct()方法,所以仔细阅读
所以我们可以去制作序列化值了,因为index里面是有反序列化这一步的,所以只能传序列化值进去
class.php文件里面有password和username这两个属性。
看见了吗,他的功能是不管你给username赋什么值,它都会给你改成guest,那怎么办呢,我了解一个漏洞方法,在这我就告诉具体该怎么做就好了,其他详细的细节你们自己去了解一下,这个漏洞是CVE-2016-7124漏洞
在这个题里面的操作是:
现在我们去传参看一下:
看,我们成功拿到了flag
