第七届浙江省大学生网络与信息安全竞赛决赛-WP
总榜Rank1,在毕业前拿到榜一也是圆满了 :)
web
wucanrce
1  |  | 
无参rce
1  |  | 
unserialize
1  |  | 
反序列化
调用路径:AAA::__destruct-->AAA::__toString-->GGG::__invoke-->EEE::__get
其中到GGG的时候需要爆破一下md5
1  |  | 

EEE中的if用报错跳过即可
exp:
1  |  | 

misc
FinalSign
附件是一个txt,存在snow特征,有大量的20,09

用得到的keyhelloworld去xor txt中的字符串
1  |  | 
非黑即白
反转文件,得到一张gif
1  |  | 
将纯黑色的帧转为0,其他的转为1,得到一个加密的zip
1  |  | 
identify查看帧间隔,发现前几帧的间隔不一致,提取出来转成字符串
1  |  | 
1  |  | 
解压得到flag DASCTF{H3r3_1s_C0L0rful_W0rld}
天命人
按照黑猴的章节名排序
1  |  | 
发现按照顺序取一个字节是50 4b 03 04 00 0a
python提取出来
1  |  | 
7-zip打开可以看到另一个zip

其中 根器.zip 很明显进行crc32爆破

1  |  | 
得到密码C0M3_4ND_Get_S1X_R00TS!!,解密 未竟.zip
提取金箍棒.png上的像素点
1  |  | 
得到verapass1:jinggubang

用照片作为密钥文件同时使用密码挂载得到flag

DASCTF{T1m3_t0_F4Ce_De5t1nY}
reverse
Reverse2
upx 加密,但抹了特征,修改一下就行

然后用命令解密
1  |  | 
打开就是 base64 换表

Reverse1
先使用标准rc4加密密钥
之后使用魔改的rc4加密明文
1  |  | 
pwn
ezPwn
直接利用tcache bin在0x4180地址处创建chunk,并写入构造好的数据,就可以获取flag
1  |  | 
printFFF
题目允许写入0x15字节的shellcode,但是不够获取shell
所以利用exit的got表第二次写shellcode,并在第一次shellcode中设置一些环境
这样第二次shellcode就可以直接调用system("sh")来获取shell
1  |  | 
reverse_stack
在程序扩展栈空间的时候存在整数溢出,让下一个函数的栈在当前函数的前面,就可以实现修改程序流
通过修改程序流让程序第二次使用mmap创建第二个栈
这两个栈是连续的,这样在第一次调用函数时写入的栈地址就在程序栈的中间,就可以获取栈中的数据,比如libc_start_main的地址
之后就可以构造rop链获取shell
1  |  | 
数据安全
datasecurity_classify1
1  |  | 
datasecurity_classify2
先用tshark提取数据
1  |  | 
除了文档中的要求外注意处理ip的范围
1  |  | 

crypto
MyCode
根据加密内容生成key并爆破即可
1  |  | 

信创安全
OH
app会在点击事件中对输入进行加密,将加密之后的数据与/aPR+E8wS9+XbFMUfm8NacHpP190pf5xaR8+MIm/8gw=进行比较

程序加密的调用流程为encrypt->encryptX->encryptY->encodeX->encodeY



分析初始化函数发现,加密使用的密钥相同,为DASCTF2024-OHAPP,encryptX为aes-128|ecb加密,encryptY为aes-128|cbc加密
分析encryptY,发现疑似使用encryptX的结果作为cbc的iv
程序将明文从中间分为两个十六位字符串,前十六位进行encryptX加密,后十六位进行encryptY加密



签到
网安知识大挑战-FINAL
简单的问题,直接做了
DBCCCCBCDB
根据提示用Triple DES解密得到flag
