本文最后更新于 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}")
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是个完整的图片
在线找个网站镜像一下
得到的flag用官方的套子
CnHongKe{youc@n’tseeme}
crypto
兔兔
下载文件得到一个图片,查看一下
应该是rabbit的编码,这首诗是木兰诗(mulanshi),用在线网站解密一下
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
然后前端登陆就可以得到flag了
提权
点进去是个企业首页试了几个敏感目录有个/admin,试了几个敏感用户,不对,想到查看源码提示用户Caster
,密码123456
直接登进去
提示权限不够,两个按钮按了也没有用用burp抓包,看到cookie可以解密
用url解密再进行base64解密后,得到原始cookie为guest,想到把guest换成admin就能登陆
直接得到flag
web-sql-xxe
点进去发现是个用户登录界面
试了弱密码,失败又回去看题目提示,提示了有sql对题目进行SQL注入后发现能够登录
密码使用联合注入,用户名随意就可以登入,界面提示XXE,POST方式,打开bp抓包
提示读flag.php
拿XXE执行伪协议filter读flag.php
得到flag