百度杯”CTF比赛 十月场Login

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

在查看中源码的最下面发现了 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


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容