ciscn2025 WriteUP
ciscn2025初赛 WriteUP
Team: Im_@tEa_P0t(成功通过初赛)
MISC
Zeroshell-1
分析流量包,查询zeroshell的漏洞,可以找到一个rce漏洞
然后里面的referer就是flag
Zeroshell-2
通过这个漏洞去找flag就可以了
Zeroshell-3
找了黑色的,查了查ip归属地,然后对了?算是蒙的吧
flag{202.115.89.103}
Zeroshell-4
221.204.15.87 山西太原联通
221.204.14.52 山西太原联通
查最近更新的文件
在/tmp里面找文件,用ls -a找到其中隐藏的文件
猜测为.nginx,正确
Zeroshell-5
使用curl下载文件
然后打开ida,查找strings
那个ip底下的应该就是(也可以用这个来解答zeroshell-3)
Zeroshell-6
用find查最近更新的文件
WinFT-1
通过虚拟机中的火绒剑来分析,得到192.168.116.130:443
然后用cport可以得到
得到flag{miscsecure.com:192.168.116.130:443}
WinFT-2
有一个计划为”javascript:var sh=new ActiveXObject(‘WScript.Shell’); sh.Run(‘cmd /c taskkill /f /im flvupdate.exe & start C:\Users\Public\Documents\flvupdate.exe’, 0, true); close();”
之后找到一个
flag:JiM3ODsmIzEwNTsmIzk5OyYjMTAxOyYjNjUyOTI7JiMxMDI7JiMxMDg7JiM5NzsmIzEwMzsmIzMyOyYjMTA1OyYjMTE1OyYjMzI7JiMxMjM7JiM2NTsmIzY5OyYjODM7JiM5NTsmIzEwMTsmIzExMDsmIzk5OyYjMTE0OyYjMTIxOyYjMTEyOyYjMTE2OyYjMTA1OyYjMTExOyYjMTEwOyYjOTU7JiM5NzsmIzEwODsmIzEwMzsmIzExMTsmIzExNDsmIzEwNTsmIzExNjsmIzEwNDsmIzEwOTsmIzk1OyYjMTA1OyYjMTE1OyYjOTU7JiM5NzsmIzExMDsmIzk1OyYjMTAxOyYjMTIwOyYjOTk7JiMxMDE7JiMxMDg7JiMxMDg7JiMxMDE7JiMxMTA7JiMxMTY7JiM5NTsmIzEwMTsmIzExMDsmIzk5OyYjMTE0OyYjMTIxOyYjMTEyOyYjMTE2OyYjMTA1OyYjMTExOyYjMTEwOyYjOTU7JiM5NzsmIzEwODsmIzEwMzsmIzExMTsmIzExNDsmIzEwNTsmIzExNjsmIzEwNDsmIzEwOTsmIzEyNTs=
WinFT-5
提取server,然后里面有个压缩包
密码就是压缩包的备注base64时间线关联非常重要
(不是哥们这是密码????)对就是这个汉字
然后解压得到里面的flag
flag{a1b2c3d4e5f67890abcdef1234567890-2f4d90a1b7c8e2349d3f56e0a9b01b8a-CBC}
sc05_1
通过日志可以知道
2024/11/09_16:22:42
flag{01DF5BC2388E287D4CC8F11EA4D31929}
sc05_3
能查的都查了,离谱了
那确实是没找到
Crypto
rsand
由题目脚本得知flag1为flag前15个字节 flag2是flag后15个字节
下发题目之后用netcat打开得到数据(对应题目中的print)
得到
Hint1 和hint2为线性方程组,通过hint1和hint2解p和q,暴力搜索来尝试找到 RSA 的质因子 p 和 q,内层循环遍历不同的 i 和 j,计算 potential_p,其可能与 n 的一个因子相关。计算 GCD(potential_p, n),判断 potential_p 是否与 n 有公因子,果有,那么可能找到了 p, 一旦找到 p,计算另一个质因子 q = n // p,并通过欧几里得算法计算私钥 d
计算第二个密文,inverse_x 计算 hint 在模 n2 下的逆元,通过两个方程,equation_1 表示与 hint 相关的方程,equation_2 表示 p 和 q 的乘积等于 n2,使用 solve 求解这两个方程,从而得到 prime_p 和 prime_q 的值,计算私钥d2
最后整合两段密文print(long_to_bytes(pow(c, d, n)) + long_to_bytes(pow(c2, d2, n2)))
得到flag{b45d27ff-0dd5-460f-816e-1d043e2596e5}