2025 第八届“强网”拟态 部分Writeup
封面:Pixiv@Nya
依旧随便更新一下,对这场比赛的感觉就是爆爆爆
Mobile
EZMiniApp
微信小程序逆向,前阵子湾区杯也做过。同样使用https://github.com/threecha/wxappUnpacker解包,在chunk_0.appservice.js发现校验flag逻辑,js有一定混淆,还有报错,懒得修,把加密部分丢给AI直接出结果
1 | |
Reverse
这次所有逆向题都是单字节加密,反倒过程看起来都弄得挺复杂,所以直接爆就完事了,抽象完了
HyperJump
base+0x4350有个反调试函数,patch掉后,调试发现可以在base+0x13F3比较的位置逐字节爆破
考虑使用Qiling模拟执行爆破
1 | |
1 | |
Icall
Binary Ninja可以把.data段设为只读方便分析,但好像只有部分函数有用,有些函数是通过arg传参进去计算的
.init_array第二个函数0x401130起了个循环反调试线程,可以patch掉
0x401c40看起来只是些变换,0x401b40看起来异或之类的像RC4可以逐字节爆破(后面再看结合flag好像确实是3轮RC4但S盒共用)
1 | |
Pwn
Babystack
1 | |
v2写入覆盖到v3然后get shell
1 | |
低空经济网络安全
把流量里9字节开头是B的后面4字节提出来
flag {dr0 t_c0 ntr0 _h4c n3_f l1gh k3d} ll3r
重新排列一下
flag{dr0n3_fl1ght_c0ntr0ll3r_h4ck3d}
Crypto
blockchain
审计合约代码
1 | |
猜硬币,但是限制了调用必须是用户直接调用
只有一个不知道什么的平台,没有rpc,因此不能读slot,所以就只能反复合约调用请求看运气了
1 | |
300多次就成功了
拿到了部署合约时的key
1 | |
根据题意是要找古典密码的key,因此用https://www.dcode.fr/identification-chiffrement识别出是vigenere,然后自动解密
大写INEEDYOU不行改成小写过了,flag{ineedyou}
Misc
Ciallo_Encrypt
得知放到仓库,找到仓库https://github.com/Yu2ul0ver/Ciallo_Encrypt0r
找到后台的账号密码,登录后台可以看到最开始的加密数据
然后加密的逻辑根据更新信息可知放到了私密的fork里,由于GitHub平台的特性,可以通过修改commit hash看到同一base下的所有commit,无论公开还是私密,而commit hash链接最短只需要4位,因此可以通过爆破找到“私密”的commit
https://github.com/Yu2ul0ver/Ciallo_Encrypt0r/commit/887c57ac0b19946e32674b45ca71b219e6e08a94
从中可以看到加密逻辑,从中倒退计算即可得到后台数据中最初加密的原始flag