御网杯wp回顾
前不久参加了2026年“御网杯”网络安全竞赛,后沉淀了几天,把三种类型的题目解题思路整理成文,既方便自己日后回顾,也希望能为刚入门CTF的师傅们提供一些参考。
一、PWN-NoteService
1. 获取到附件vuln文件和libc-2.31.so,file确认64位ELF,checksec检查:NX开启、无Canary、无PIE、Partial RELRO
2. 然后利用objdump反汇编分析vuln函数,发现使用read(0, rbp-0x40, 0x100)读取256字节到64字节缓冲区,存在栈溢出漏洞
3. 在去利用程序自带的secret_note后门函数(0x401196),调用system("/bin/sh")获取shell(NX开启需要ret2text技术)
4. 然后计算出溢出偏移:从缓冲区(rbp-0x40)到返回地址共0x48=72字节;注意NX开启不能执行shellcode,需要ret2text跳转到后门;同时x86-64需要ret gadget(0x40101a)做16字节栈对齐
5. 连接靶机47.99.147.34:21395,发送payload触发溢出,执行cat flag命令
6. 最终解出flag
二、BabyRSA (CRYPTO)
1. 下载 src.zip,解压获取PHP源码文件:api/apply_coupon.php、models.php、buy.php、index.php、config.php。
2. 阅读PHP源码发现 api/apply_coupon.php 中存在 PHP反序列化漏洞(unserialize(base64_decode($couponData)))。models.php 中 PromoManager 类的 __destruct() 可将promo_credit 加到用户余额。利用 PHP 脚本生成序列化 Payload,用 curl 发送请求。
3. 将序列化对象进行 Base64 编码后作为 coupon 参数提交。
4. 然后解出flag
三、幻影(misc)
1.解压得到data.bin文件,用记事本打开显示为“伪rar”文件:FLAG IS HIDDEN IN BASE64 PLUS XOR!
2.根据data.bin文件得到密文:
p62gprr28vjy8/P09OynoPWj7PXz9fPso6L29uzw8/ny8/Wl9veloPe8
3.用随波逐流base64解码得到:'- &:vrxrssttl' u#lususl#"vvlpsyrsu%vw% w<
4.XOR爆破:key= 65 (0x41) 时出现flag
