BUUCTF PWN wp--jarvisoj_level0

第一步 checksec ,该题为64位。

分析一下二进制保护机制:

  1. Arch: amd64-64-little
    这个字段表示二进制程序的架构是 64 位的小端序的 x86-64 架构。小端序意味着低位字节存储在内存中的低地址上,高位字节存储在高地址上。
  2. RELRO: No RELRO
    RELRO(Relocation Read-Only)是一个防止某些基于重定位表的攻击的安全机制。你提供的信息表明,程序没有启用 RELRO。这意味着程序的重定位表在运行时是可写的,攻击者可以利用这种特性进行某些类型的攻击,如通过覆盖 GOT 表来进行函数重定向。
  3. Stack: No canary found
    堆栈保护(Stack Canary)是一种用于防止缓冲区溢出攻击的机制,它通过在栈帧中放置一个"金丝雀值"(Canary)来检测溢出。这里显示没有找到 Stack Canary,这意味着程序没有启用堆栈保护机制,可能更容易受到栈缓冲区溢出攻击的威胁。
  4. NX: NX enabled
    NX(No eXecute)是指禁止执行位于栈或堆等非代码段中的代码的机制。这里显示 NX 已启用,这意味着程序不允许在数据段中执行代码,这可以有效防止某些代码注入类型的攻击(如传统的栈溢出攻击)。
  5. PIE: No PIE (0x400000)
    PIE(Position Independent Executable)是指位置无关的可执行文件,如果启用了 PIE,程序在每次运行时,加载地址都会随机化,以增加攻击者预测内存布局的难度。这里显示未启用 PIE,这意味着程序的加载地址是固定的(这里是 0x400000),攻击者更容易预测程序的内存布局,从而进行攻击。

第二步 进入主函数,并分析。

跟进该函数,进入该数组(buf128

计算栈溢出长度用垃圾数据填充一下(从buf到vulnerable_function的返回地址只有0x80+0x8个字节。本题与之前的题目类型差不多,是栈溢出问题)

调出strings窗口发现/bin/sh,system("/bin/sh")在callsystem函数里,想办法触发该函数即在p64下控制该函数的地址,如下为0x400596

第三步 编写脚本

说明一下(0x80+0x8可以写成136,有别人直接这么写,正好对应上面buf数组128个+r里面8

个)

第四步 运行

相关推荐
虹科网络安全11 小时前
Redis 安全公告:CVE-2026-81934 TLS 处理漏洞及修复建议
网络·人工智能·网络安全
2501_9160088916 小时前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
Dachui_112218 小时前
ZeroNews LFS 使用教程:NAS 文件发布为公网 HTTPS 文件空间,不传网盘、按人授权、免登录分享
运维·网络安全·文件共享·团队协作·nas
杭州默安科技20 小时前
从海量告警到精准修复:安全智能体如何打通开发安全工具链
网络安全·ai智能体
m0_7156744320 小时前
2026年中国API安全产品综合排名:选型指南与行业趋势解析
网络·安全·网络安全
天若有情6731 天前
开源SQL注入可视化演示项目|GitHub Pages+Netlify双平台免费部署教程
网络安全·代码审计·githubpages·sql 注入·web 安全·前端演示·netlify 部署
数据知道1 天前
LDAP 与 AD 安全深度剖析——注入、弱绑定、权限配置错误
网络安全·密码学·哈希算法
躺柒1 天前
读数据可视化34其他科学与艺术
网络安全·信息可视化·气象学·可视化·数据可视化·气候模型
数据知道2 天前
加密流量分析——JA3 指纹、TLS 指纹识别与规避
网络·安全·网络安全·密码学
聚铭网络2 天前
智能时代 网安护航 | 聚铭网络精彩亮相2026南京市网络安全宣传周活动
网络安全