2021年蓝帽杯部分WP


前言

2021年“蓝帽杯”题目复盘,感觉题目难度挺大的,小白选择性记录目前能看懂的部分,不是完整WP,自己的学习记录。需要完整WP的可以翻一翻其他大师傅的文章。

一、One_Pointer_php

本次比赛有两个web题,第一个居然是个玩游戏的,game渣渣直接掉线。第二个就是这个很多层的题目。目前值看懂了第一层反序列化,后续的操作先挖个坑。

1.反序列化漏洞

解释:
序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。
函数:
serialize和unserialize
例子:

<?php
//创建一个数组
$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');
//序列化数组
$s = serialize($a);
echo $s;
//输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";}
echo '<br /><br />';
//反序列化
$o = unserialize($s);
print_r($o);
//输出结果 Array ( [a] => Apple [b] => banana [c] => Coconut ) 
?>

其中:
(1)a:3表示数组a中有三个对象
(2)s:1:"a"表示字符串长度为1,内容为a。

2.分析题目中获得文件

下载压缩包获得两个php文件:
user.php

<?php
class User{
	public $count;
}
?> 

创建了一个User对象,里面有一个变量count
add_api.php

<?php
include "user.php";
if($user=unserialize($_COOKIE["data"])){
	$count[++$user->count]=1;
	if($count[]=1){
		$user->count+=1;
		setcookie("data",serialize($user));
	}else{
		eval($_GET["backdoor"]);
	}
}else{
	$user=new User;
	$user->count=1;
	setcookie("data",serialize($user));
}
?>

为了学习这些php的语句,先配置了一上午的php环境(好家伙)
$_COOKIE语句学习链接:https://blog.csdn.net/sm20170867238/article/details/90762010

$user=unserialize($_COOKIE["data"])

表示获取cookie为data的序列,解序列赋给user,里面有一个count的变量,手动赋值。

$count[++$user->count]=1;

表示对count数组中的第n+1位赋值为1
由于第五排的一个赋值操作,不需要绕过第五排的赋值操作才能进入else的后门程序,所以使用PHP溢出来跨过。
构造序列:

O:4:"User":1:{s:5:"count";i:9223372036854775806;}
#i表示int
#s表示string,要加上字符串的长度

最后记得修改cookie的名字为data

二、冬奥会_is_coming

1.前言

初次接触MISC的题目,下载工具:
1、kali 感觉功能很强大,但是目前不会用。初始用户名和密码都是kali
2、MP3Stego 一个可以对MP3文件进行解码和编码的工具,使用是将要处理的文件拉入.exe文件目录下,在当前文件夹打开cmd
解密:

decode -X sound.mp3 -P 123

加密

encode -E data.txt sound.wav sound.mp3 -P 123

2.题目

首先获得一个图片,发现这个图片的体积非常大。考虑是隐藏了一些文件在里面,所以使用.rar进行解压获得一个mp3的文件,以及提示是八位密码。
在这里插入图片描述
猜测八位密码是冬奥会开幕日期:20220204即MP3Stego的解压密码。
使用MP3Stego解压后得到一串十六进制的符号。

\xe2\x9c\x8c\xef\xb8\x8e \xe2\x98\x9d\xef\xb8\x8e\xe2\x99\x93\xef\xb8\x8e\xe2\xa7\xab\xef\xb8\x8e\xe2\x98\x9f\xef\xb8\x8e\xe2\x97\x86\xef\xb8\x8e\xe2\x99\x8c\xef\xb8\x8e \xe2\x9d\x92\xef\xb8\x8e\xe2\x99\x8f\xef\xb8\x8e\xe2\x97\xbb\xef\xb8\x8e\xe2\x96\xa1\xef\xb8\x8e\xe2\xac\xa7\xef\xb8\x8e\xe2\x99\x93\xef\xb8\x8e\xe2\xa7\xab\xef\xb8\x8e\xe2\x96\xa1\xef\xb8\x8e\xe2\x9d\x92\xef\xb8\x8e\xe2\x8d\x93\xef\xb8\x8e \xe2\x96\xa0\xef\xb8\x8e\xe2\x99\x8b\xef\xb8\x8e\xe2\x9d\x8d\xef\xb8\x8e\xe2\x99\x8f\xef\xb8\x8e\xe2\x99\x8e\xef\xb8\x8e \xf0\x9f\x93\x82\xef\xb8\x8e\xe2\x99\x8d\xef\xb8\x8e\xe2\x99\x8f\xef\xb8\x8e\xf0\x9f\x8f\xb1\xef\xb8\x8e\xe2\x99\x8f\xef\xb8\x8e\xe2\x99\x8b\xef\xb8\x8e\xf0\x9f\x99\xb5 \xe2\x99\x93\xef\xb8\x8e\xe2\xac\xa7\xef\xb8\x8e \xe2\x9d\x96\xef\xb8\x8e\xe2\x99\x8f\xef\xb8\x8e\xe2\x9d\x92\xef\xb8\x8e\xe2\x8d\x93\xef\xb8\x8e \xe2\x99\x93\xef\xb8\x8e\xe2\x96\xa0\xef\xb8\x8e\xe2\xa7\xab\xef\xb8\x8e\xe2\x99\x8f\xef\xb8\x8e\xe2\x9d\x92\xef\xb8\x8e\xe2\x99\x8f\xef\xb8\x8e\xe2\xac\xa7\xef\xb8\x8e\xe2\xa7\xab\xef\xb8\x8e\xe2\x99\x93\xef\xb8\x8e\xe2\x96\xa0\xef\xb8\x8e\xe2\x99\x91\xef\xb8\x8e\xf0\x9f\x93\xac\xef\xb8\x8e \xf0\x9f\x95\x88\xef\xb8\x8e\xe2\x99\x92\xef\xb8\x8e\xe2\x8d\x93\xef\xb8\x8e \xe2\x96\xa0\xef\xb8\x8e\xe2\x96\xa1\xef\xb8\x8e\xe2\xa7\xab\xef\xb8\x8e \xe2\xa7\xab\xef\xb8\x8e\xe2\x99\x8b\xef\xb8\x8e\xf0\x9f\x99\xb5\xe2\x99\x8f\xef\xb8\x8e \xe2\x99\x8b\xef\xb8\x8e \xe2\x97\x8f\xef\xb8\x8e\xe2\x96\xa1\xef\xb8\x8e\xe2\x96\xa1\xef\xb8\x8e\xf0\x9f\x99\xb5 \xe2\x99\x8b\xef\xb8\x8e\xe2\xa7\xab\xef\xb8\x8e \xe2\x99\x93\xef\xb8\x8e\xe2\xa7\xab\xef\xb8\x8e\xe2\x9c\x8d\xef\xb8\x8e

这个是utf-8编码,或者是说这个是一个字节的表示方式。在python里面直接进行解码。

print(b"...".decode(utf-8))

得到一串wingding字符,使用一个在线解码器进行解码:https://lingojam.com/WingdingsTranslatorwingding在线解码

✌︎ ☝︎♓︎⧫︎☟︎◆︎♌︎ ❒︎♏︎◻︎□︎⬧︎♓︎⧫︎□︎❒︎⍓︎ ■︎♋︎❍︎♏︎♎︎ 📂︎♍︎♏︎🏱︎♏︎♋︎🙵 ♓︎⬧︎ ❖︎♏︎❒︎⍓︎ ♓︎■︎⧫︎♏︎❒︎♏︎⬧︎⧫︎♓︎■︎♑︎📬︎ 🕈︎♒︎⍓︎ ■︎□︎⧫︎ ⧫︎♋︎🙵♏︎ ♋︎ ●︎□︎□︎🙵 ♋︎⧫︎ ♓︎⧫︎✍︎

Wingdings 是一个符号字体系列,它将许多字母渲染成各式各样的符号,用途十分广泛。
得到一串英文提示:
在这里插入图片描述
进入GitHub上看看有啥?
打开只有下载了文件,获得:

#!/bin/sh
echo How_6ad_c0uld_a_1cePeak_be? >&2

之后只用winhex查看mp3的文件,发现了一段cipher的编码。
在这里插入图片描述
复制Hex Value然后在在线工具里面转成字符串的形式。
在这里插入图片描述

🙃💵🌿🎤🚪🌏🐎🥋🚫😆🎃✅⌨🔪❓🚫🐍🙃🔬✉👁😆🎈🐘🏎🐘🐘😂😎🎅🖐🐍✉🍌🌪🐎🍵✅🚪✖☃👣👉ℹ🔪🍎🔄👣🚪😁👣💵🐅🍵🔬🛩😇🖐🖐🎅✅🏎👌🚨😆🎤🎅🦓🌿🦓🙃✖🍌🛩😂👑🌏☃😇😍🛩🚹😀🍌🎈💧🗒🗒

通过一个神奇的emoji解码工具:https://aghorler.github.io/emoji-aes/
结合之前找到的密码How_6ad_c0uld_a_1cePeak_be?进行解码
在这里插入图片描述
得到flag

总结

多学多学
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值