SHCTF-MISC

MISC

[WEEK1]请对我使用社工吧

where.jpg
提取关键
image.png
image.png
image.png
也就这点结果,一个一个看就行了
image.png
山东石油化工学院,但是中国石油大学
flag{山东省_东营市_东营区_中国石油大学}

[WEEK1]也许需要一些py

image.png
摩斯电码翻译:this1sy0ukey
查看flag.txt

is it the true flag?
flag{pNg_and_Md5_SO_GreaT}

直接解压解压出flag文件,扔到010查看是png图片少了文件头,补上即可image.png
flag.png
看起来是flag的md5值,于是写脚本爆破

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import hashlib

def calculate_md5(s):
m = hashlib.md5()
m.update(s.encode('utf-8'))
return m.hexdigest()

def find_match(strings, target_md5):
for s in strings:
if calculate_md5(s) == target_md5:
return s
return None

def generate_cases(s):
if not s: return [""]
rest = generate_cases(s[1:])
return [s[0].lower() + suffix for suffix in rest] + [s[0].upper() + suffix for suffix in rest]


s = "pNg_and_Md5_SO_GreaT"
strings=(generate_cases(s))
print(find_match(strings, '63e62fbce22f2757f99eb7da179551d2'))

运行得到结果:Png_AnD_md5_so_GReAt
flag{Png_AnD_md5_so_GReAt}

[WEEK1]ez-misc

![0{%I7@24NG9_WJZH~4DLII.png
下下来是个压缩包,只能解压出01game.txt。里面有841个01正好是是29**2个字符,猜测01转二维码。
image.png
扫码得到解压密码:hit_k1sme4_4_fun
flag文件扔到010里,504B0304开头,鉴定为zip文件。image.png
image.png
二进制转字符串是rockyou,只能开字典爆破了。
image.png
获得密码:palomino
image.png
字频分析。由字频从大到小排列:flag{SHyk1sme4}563@2789#%($^,提取flag:flag{SHyk1sme4}563@2789#%($^

[WEEK1]签到题

Wm14aFozdDBhR2x6WDJselgyWnNZV2Q5
两次base64解密
flag{this_is_flag}

[WEEK1]Jaeger lover

环太平洋确实还没看过,回头看看
Typhoon.jpg
010打开结尾有段base字符串提示。
image.png
base58(radix58)–>base32–>base64
you know the Windows is a system for PC,but do you know the what is thr Op. System for this Jaeger?
搜到这个机甲是
image.png
image.png
获得key.*+#1Ao/aeS
解压压缩包获得sercet.png,修复长宽高再次打开
fix_sercet.png
用010打开发现IEND后面有一段冗余数据,但用binwalk和foremost都分不出来,所以单独提出来看看。
然后就不知道怎么做了
经过漫长的时间和发散思维,通过sercet这个词联想到刚打杂项时碰到的的our_sercet,于是拿它去试试。
image.png
奇迹般的里面还真有个flag.txt,打开得到flag
flag{A1l_boys_aRe_Jaeger_L0ver!!}

[WEEK1]Steganography

careful.jpg的结尾有base64字符串
image.png
12ercs.....909jk
careful1.jpg的属性里有字符串xqwed
image.png
联合得到压缩包密码12ercsxqwed909jk
flag{4d72e4f3-4d4f-4969-bc8c-a2f6f7a4292c}

[WEEK1]可爱的派蒙捏

binwalk分离出zip,解压出有两个相似txt文件,写脚本找不同

1
2
3
4
5
6
7
8
9
10
11
def find_diff(file1, file2):
flag= ''
with open(file1, 'r') as f1, open(file2, 'r') as f2:
for line1, line2 in zip(f1, f2):
for char1, char2 in zip(line1, line2):
if char1 != char2:
flag += char2
return flag

flag=find_diff('txt1.txt', 'txt2.txt')
print(flag)

得到flagflag{4ebf327905288fca947a}

[WEEK1]message

字符串扔到010里就能看到flag
image.png
但需要把SHCTF改成flag
flag{ba978405-b1c8-847c-8e69-f62177e4c087}

[WEEK1]真的签到

image.png
flag{Welc0me_tO_SHCTF2023}

[WEEK2]远在天边近在眼前

image.png
flag天梯
flag{7Hls_is_r3Al1Y_e4Sy_aIrIgh7__094b0e6da44b}
直接解压打开路径栏复制反转,但?没了,所以后加上就行
flag{7Hls_is_r3Al1Y_e4Sy_aIrIgh7?_094b0e6da44b}

[WEEK2]奇怪的screenshot

CVE-2023-28303
什么最新最热考点
image.png
杨吕褚朱窦任云伍孙赵孙李伍孙冯李赵李伍袁尤张钱钱伍花张尤曹曹尤张朱伍魏赵赵吕伍尤金伍张赵魏伍花韩蒋陶华韩
百家姓解码flagCVE-2023-28303-Win11-Snipping-t00l-is-n0t-Secure

[WEEK2]可爱的洛琪希

zip伪加密
image.png
打开是
image.png
在线base转图片
image.png
在属性里看到十六进制字符串
image.png
hex转码得到slno{Rbky_qiifhkv!}
用010打开的最后有key
image.png
维吉尼亚解密得到flag
flag{Roxy_daisuki!}

[WEEK2]喜帖街

在频谱图里看到LeeTung
image.png
steghide解出flag.txt,再Ook解码出flag
flag{w@v2txt_s0_Int3r3st1ng!}

[WEEK2]图片里的秘密

先binwalk分离出zdjd.jpg
zdjd.jpg
搜了一圈才知道是FFT傅里叶盲水印。所以用脚本解出
image.png
flag{Blind_Water_Mark!}

[WEEK2]表里的码

是个表格,但打不开,只能先去看看.\xl\worksheets\sheet1.xml.
image.png
稍微排版了一下发现s只有14两个值,v都是0.尝试先把1``4转换为二进制
image.png
筛出来后才发现里面还有2和3,先姑且删除看看
删完后发现一共841的字符串,正好29**2,所以再转二维码看看
image.png
扫码即可得flag{j0k3r_1s_my_wif3}

[WEEK3]ez_usb

脚本读usb键盘流量。
IP为2.8.1和2.10.1是键盘流量
首先是2.8.1
526172211a0700<CAP>c<CAP>f907300000d000000000000002f507424943500200000002<CAP>0000000<CAP>02a3021b4d577f06551d33080020080000666c61672e<CAP><CAP>747874<CAP>7cc<CAP>34ada98d<CAP>a<CAP>7d<CAP>020<CAP>0f035680325f6866372<CAP>47<CAP>92af0b91c<CAP>e8<CAP>6c1b46ed4b180d5a<CAP>8a7<CAP>c626ad<CAP>b5ceb2f<CAP>f8cf1<DEL>2<CAP><CAP><CAP>4<CAP><CAP>a<DEL><CAP><CAP>8<DEL><CAP><CAP><CAP><CAP><CAP><DEL>4<CAP>104c43d7b0040070<CAP><CAP><CAP><CAP><CAP><CAP><CAP><CAP><CAP><CAP><CAP><CAP><CAP>0a<DEL>e
转换为
526172211a0700cf907300000d000000000000002f507424943500200000002000000002a3021b4d577f06551d33080020080000666c61672e7478747cc34ada98da7d0200f035680325f68663724792af0b91ce86c1b46ed4b180d5a8a7c626adb5ceb2ff8cf24104c43d7b00400700e
转rar文件
然后是2.10.1
adabb04a5e9a6c33
是rar密码
解压出来后是c6bd1c7bcfef89ffbf59d86ccaf97d3c
好像这就是flag吧(?

[WEEK3]请再次对我使用社工吧

非常好水库,爱来自山东。
直接搜索山东水库,开始穷举
山东省各大水库位置及蓄水量(百万立方) - 知乎专栏
image.pngimage.png
极具标识性的广场
image.png
flag{山东省_泰安市_新泰市_青云山}

[WEEK3]strange data

震撼android data,网上也找不到现成工具,只能自己动手写

在Android的getevent中,'0003’表示的是绝对值事件(ABS)类型12。以下是你提到的参数位定义的含义:

  • ‘0000’:表示ABS_X,即触摸点的X坐标。
  • ‘001a’:表示ABS_PRESSURE,即触摸压力。
  • ‘0001’:表示ABS_Y,即触摸点的Y坐标。
  • ‘0019’:表示ABS_DISTANCE,即设备到物体的距离。
  • ‘001b’:表示ABS_TILT_X,即设备在X轴上的倾斜角度。
  • ‘0018’:表示ABS_VOLUME,即设备的音量控制。

以0001的014a为断点分离数据就可以

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
import matplotlib.pyplot as plt
import numpy as np

def check(x,y):
new_x=[]
new_y=[]
for i in range(len(x)):
if x[i] >3400 and y[i] >3800:
new_x.append(x[i])
new_y.append(y[i])
return new_x,new_y

x = [3400]
y = [3800]
y_d = 0
x_d = 0
x_sum = []
y_sum = []
leng=0
plt.figure()
# 打开文件
with open('data', 'r') as file:
# 逐行读取
for line in file:
# 分割每一行
parts = line.split()
# 检查第一部分是否为'0003'
if parts[0] == '0003':

if parts[1] == '0001':
if y_d > 1:
for i in range(y_d):
x.append(x[-1])
y_d = 0
x_d = 0
x.append(int(str(parts[2]), 16))
x_d += 1
y_d -= 1

elif parts[1] == '0000':

if x_d > 1:
for i in range(x_d):
y.append(y[-1])
x_d = 0
y_d = 0

y.append(int(str(parts[2]), 16))
y_d += 1
x_d -= 1

if parts[0] == '0001':
if parts[1] == '014a':
if x_d > 0:
for i in range(x_d):
y.append(y[-1])
if y_d > 0:
for i in range(y_d):
x.append(x[-1])
y_d = 0
x_d = 0
if len(x) < 700 and len(x) != 539 and len(x) != 644 and leng<170:
x, y = check(x,y)
leng+=1
if leng %2 == 0:
plt.plot(x, y, alpha=1)
x = [3400]
y = [3800]
if len(x) < 700 and len(x) != 539 and len(x) != 644:
x, y = check(x,y)
plt.plot(x, y, alpha=1)
print(leng)
plt.show()

难看,但是能用
image.png
最后Fun后面是个难以辨认的!
flag{miiii1_sm4rt_p3n_1s_So_Fun!}

[WEEK3]尓纬玛

搜到一个类似二维码,解法是涂白左边的纠错区,虽然得到了部分flag但并不是这个答案
image.png
全涂黑了得到下面结果
image.png
好像是这个又好像不是?当时乱涂掩码区出的flag 但现在flag已经交过了 还测试不了这个对不动
flag{QRcodE_ha5_many_kindS_of_secrets_NOw_yOU_Kn0W_l_g0sglo}

[WEEK3]做社工不如来签到 revenge

首先,我们得到了一个raw内存镜像和一个名为12345678的文件。猜测需要在镜像里找密码在VeraCrypt加载12345678。通过Volatility的consoles提取执行的命令行历史记录可以得到字符串flag{this_is_your_key_to_open_some_file},在VeraCrypt加载12345678
image.png
在fale_flag.txt文件的最后可以获取信息:encrypt-step3-CAST-128-key:1115172035abcdef

在whatcanyoufindhere文件夹里可以看到564个大小为564k的txt文本文件和一个10M的文本文件,通过file得知这是个Linux rev 1.0 ext3 filesystem data
实际上通过strings直接可以得到以下信息image.png


也可以通过sudo mount 565 /mnt/cdrom挂载硬盘得到ciphertext.txt和ip.zip。image.png
提取出来的ip.zip需要密码,猜测密码和内存镜像的IP有关,netscan可以扫描内存中的网络连接,第一个连接IP:192.168.137.133就是密码。解压后是一个无法加载的图像,扔到010里观察到这是png图像每4字节进行倒置,通过脚本可以恢复图片。image.png
恢复后的图片


还可以直接通过extundelete 565 --restore-all获取到file.11,打开就是encrypt-step2-xor-key:Xorrrrrrrrr_1s_s000000_fun


又或是通过DiskGenius挂载镜像恢复文件获取信息。image.png


到这里后就不知道该干啥了,只能回头看看那564个文件。564个文件正好有564个字符,猜测取第i个文件的第i个的字符组成一个新的文件,结果正好是504B开头。
image.png
改后缀后发现这个zip有密码,提示是username_hostname,这些信息都可以在内存镜像里找到,通过envars可以找到username:SOGREATNAME&hostname:WIN-RRI9T9SN85D,密码是SOGREATNAME_WIN-RRI9T9SN85D
解压出来是文本文件:
what can you get from the str?
your hint:k1sme4
看不出来就去搜,搜到一个github库:https://github.com/k1sme4/ctf
image.png
8UND5eHgeniYT1NHc487YkXbUS72AbFRgYmxffskgKQMQaHfy4rWE5J2UDy提出来经过base58解码获得最后一个信息:encrypt-step1-Blowfish-key:k1s1115172035me4
就此我们获得了三条信息:

  • encrypt-step1-Blowfish-key:k1s1115172035me4
  • encrypt-step2-xor-key:Xorrrrrrrrr_1s_s000000_fun
  • encrypt-step3-CAST-128-key:1115172035abcdef

以及可能是flag的字符串:
\xfb"7 S:$y\xa9\xac\xd5\xf6\xae\x81^o\xda\x06 \xff\xaf9\xc7\x92
接下来就是解密时间了,注意对称加密时mode:ECB,padding:NoPadding
b'\xfb"7 S:$y\xa9\xac\xd5\xf6\xae\x81^o\xda\x06 \xff\xaf9\xc7\x92'–Hex–>fb223720533a2479a9acd5f6ae815e6fda0620ffaf39c792–CAST5–>7b21ace01a734f856da1adbc80e88c183a8de7d543fd43fa–Xor–>234ede9268013df71fd3dfe3b19bd36b0abdd7e573cd1c9c–Blowfish–>3135393733306b6638776e397a706c40313938796d6c6130–Hex–>159730kf8wn9zpl@198ymla0
159730kf8wn9zpl@198ymla0这东西怎么看都不像是flag,其它方向解出的数据都是乱码,只能猜测它是哪里的密钥。搜索的时候搜到二层加密磁盘,尝试以这个字符串作为密钥再次在VeraCrypt挂载12345678,成功挂载得到flag:flag{so0000_e4sy_forensics_And_decrypt!!!!!}

[FINAL]问卷

image.png
我相信


SHCTF-MISC
http://example.com/2023/10/30/SHCTF-WP-MISC/
作者
pjx1314
发布于
2023年10月30日
许可协议