按照一般的套路都是右键查看源码
在查看中源码的最下面发现了 test1 test1
怀疑是账号 密码
测试一下果然没错
进入member.php 页面 但是没用发现可用信息
于是burp suite拦截包看一下
发现在response 中有可疑参数 show
于是我们在请求段加入 show :1;
发现返回给我们了源码
include 'common.php';
$requset = array_merge($_GET, $_POST, $_SESSION, $_COOKIE);
class db
{
public $where;
function __wakeup()
{
if(!empty($this->where))
{
$this->select($this->where);
}
}
function select($where)
{
$sql = mysql_query('select * from user where '.$where);
return @mysql_fetch_array($sql);
}
}
if(isset($requset['token']))
{
$login = unserialize(gzuncompress(base64_decode($requset['token'])));
$db = new db();
$row = $db->select('user=\''.mysql_real_escape_string($login['user']).'\'');
if($login['user'] === 'ichunqiu')
{
echo $flag;
}else if($row['pass'] !== $login['pass']){
echo 'unserialize injection!!';
}else{
echo "(鈺�碘枴鈥�)鈺傅鈹粹攢鈹� ";
}
}else{
header('Location: index.php?error=1');
}
?> -->
得知要得到flag需要满足 $login['user'] === 'ichunqiu'
而user被$login = unserialize(gzuncompress(base64_decode($requset['token'])));处理过
我们重新编写一个程序解密即可(这个部分看的别人的write up)
将结果添加到cookie中的token中然后发过去即可得到flag