百度杯”CTF比赛 十月场Login

按照一般的套路都是右键查看源码

在查看中源码的最下面发现了 test1 test1

怀疑是账号 密码

测试一下果然没错

进入member.php 页面 但是没用发现可用信息

于是burp suite拦截包看一下

发现在response 中有可疑参数 show

百度杯”CTF比赛 十月场Login_第1张图片

于是我们在请求段加入 show :1;

百度杯”CTF比赛 十月场Login_第2张图片

发现返回给我们了源码


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


百度杯”CTF比赛 十月场Login_第3张图片

你可能感兴趣的:(百度杯”CTF比赛 十月场Login)