2024年领航杯初赛

本文最后更新于 2024年10月13日 凌晨

团队最后获得比赛第七,简单记录一下内容部分题解是直接粘贴可能不详细。

Misc

签到

扫二维码发送flag得到flag,就不截图了。hex转化

seeme

给了一个文件告诉的是一堆255的信息,敏感的察觉可能和色有关最大255,尝试写脚本爆破,在120和511附件可以明显看到有文字的存在,在这附件开始爆破

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from PIL import Image, ImageEnhance
import numpy as np

def read_pixel_values_from_file(filename):
with open(filename, 'r') as file:
pixel_values = []
for line in file:
values = line.strip().split(',')
if len(values) != 3:
raise ValueError(f"每行必须包含 3 个值。错误行: {line}")
pixel_values.extend(map(int, values))
return pixel_values

def create_image_from_pixels(pixel_values, width, height):
expected_pixel_count = width * height * 3
actual_pixel_count = len(pixel_values)

if actual_pixel_count > expected_pixel_count:
print(f"像素值数量多于要求,截取前 {expected_pixel_count} 个像素值...")
pixel_values = pixel_values[:expected_pixel_count]
elif actual_pixel_count < expected_pixel_count:
print(f"像素值数量少于要求,填充黑色像素...")
pixel_values.extend([0] * (expected_pixel_count - actual_pixel_count))

pixels = np.array(pixel_values, dtype=np.uint8).reshape((height, width, 3))
image = Image.fromarray(pixels, 'RGB')
return image

def enhance_image(image):
# 调整亮度、对比度和颜色饱和度
enhancer = ImageEnhance.Brightness(image)
image = enhancer.enhance(1.5) # 提高亮度

enhancer = ImageEnhance.Contrast(image)
image = enhancer.enhance(1.5) # 提高对比度

enhancer = ImageEnhance.Color(image)
image = enhancer.enhance(1.2) # 调整颜色饱和度

return image

def main():
print("欢迎使用像素到图像生成器!")

input_file = "file.txt"

print(f"从 {input_file} 读取像素值...")
try:
pixel_values = read_pixel_values_from_file(input_file)

total_pixels = len(pixel_values) // 3
print(f"总像素数: {total_pixels}")

# 细化爆破 120 附近和 511 附近的宽度
refined_resolutions = list(range(115, 126)) + list(range(505, 516)) # 细化爆破

for width in refined_resolutions:
height = total_pixels // width
if width * height > total_pixels:
print(f"跳过 {width}x{height},像素数据不足。")
continue

print(f"生成尺寸为 {width}x{height} 的图像...")

# 创建原始图像
image = create_image_from_pixels(pixel_values, width, height)

# 微调图像
enhanced_image = enhance_image(image)

# 保存增强后的图像
output_filename = f"output_image_{width}x{height}.png"
enhanced_image.save(output_filename)
print(f"增强后的图像已保存为 {output_filename}")

except Exception as e:
print(f"发生错误: {e}")


if __name__ == "__main__":
main()

可以发现图片122*503是个完整的图片

output_image_122x503

在线找个网站镜像一下

seeme

得到的flag用官方的套子

CnHongKe{youc@n’tseeme}

crypto

兔兔

下载文件得到一个图片,查看一下

兔兔

应该是rabbit的编码,这首诗是木兰诗(mulanshi),用在线网站解密一下

tutu1

Web

acxi

打开随便注册一个账号

然后正常登陆,告诉只有admin才有flag,尝试按get flag得到,没有回显进行抓包

进行change password看看

有一串这样的东西

HIDDEN_STATE=18&HIDDEN_HIX=1052267119216&HIDDEN_LANG=0&new_password=

1052267119216进行hex的转化得到F5 0002 0270,改为F500010270,再转为十进制得到1052267053680,放入然后随机个密码我输入的为admin

acix1

然后前端登陆就可以得到flag了

acix2

提权

ti1

点进去是个企业首页试了几个敏感目录有个/admin,试了几个敏感用户,不对,想到查看源码提示用户Caster,密码123456直接登进去

2

提示权限不够,两个按钮按了也没有用用burp抓包,看到cookie可以解密

3

用url解密再进行base64解密后,得到原始cookie为guest,想到把guest换成admin就能登陆

直接得到flag

4

web-sql-xxe

点进去发现是个用户登录界面

web

试了弱密码,失败又回去看题目提示,提示了有sql对题目进行SQL注入后发现能够登录

web1

密码使用联合注入,用户名随意就可以登入,界面提示XXE,POST方式,打开bp抓包

提示读flag.php

拿XXE执行伪协议filter读flag.php

得到flag


2024年领航杯初赛
https://0ran9ewww.github.io/2024/10/13/领航杯/2024年领航杯初赛/
作者
orange
发布于
2024年10月13日
许可协议