第七届浙江省大学生网络与信息安全竞赛决赛-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
