avatar

目录
PCTF2016 Web300神盾局的秘密(反序列化漏洞)

PCTF2016 Web300神盾局的秘密(反序列化漏洞)

打开之后是这样的
mark

查看网页源代码,只有一行
mark

很明显这是base64加密,于是解密看一下
mark
于是看出访问格式为

showimg.php?img=文件名的base64

得到格式之后,先看showimg.php,base64加密访问
mark
mark
可以看出,这里过滤掉了一些特殊字符以及pctf字符串。

我们再来看看index.php,把它base64加密
mark

然后访问,查看源代码
mark
我们看到

php
require_once('shield.php');

require_once语句在脚本执行期间包含并运行指定文件。

于是我们需要访问shield.php,再次base64加密访问
mark
mark

这里提示我们flag就在pctf.php里,但是showimg.php中过滤了pctf,那么我们又注意到index.php中最后
$x=unserialize($g)
也就是反序列化字符串,所以我们可以自己将pctf.php序列化然后传入

构造类似shield.php中的类如下

Code
<?php

class Shield {
public $file;
function __construct($filename = '') {
$this -> file = $filename;
}
}

$x = new Shield();
$x -> file = 'pctf.php';
echo serialize($a);

运行
mark
将得到结果传入
即访问的是

index.php?class=序列化字符串

mark

得到flag

完结

文章作者: kabeor
文章链接: https://kabeor.github.io/PCTF2016%20Web300%E7%A5%9E%E7%9B%BE%E5%B1%80%E7%9A%84%E7%A7%98%E5%AF%86(%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E)/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 K's House

评论