攻防世界-CGfsb详细知识点及解答

这篇博客介绍了攻防世界-CGfsb挑战的解决过程,涉及使用checksec、IDA分析,发现是格式化字符串漏洞。通过查找偏移量和编写exploit,博主详细讲解了格式化字符串攻击的原理和防止措施,包括读取栈上数据、任意地址写操作以及覆盖计数器。
摘要由CSDN通过智能技术生成

攻防世界-CGfsb

1.将文件拖入ubuntu用checksec检查保护

arch:arch是“Architecture”的缩写,表示二进制文件编译时采用的CPU架构。在安全中,arch通常用于表示二进制的CPU架构是否是适合攻击者开发shellcode的目标,因为攻击者需要知道适合攻击平台的内存偏移量和指令。因此,对于一个给定的攻击目标,知道其CPU架构可以帮助攻击者更容易地开发成功的攻击。
prlro:prlro是“Partial Relro”的缩写,表示二进制是否启用了Partial Relocation Read-Only保护。这种保护机制可以阻止攻击者利用GOT表重定向攻击,因为GOT表的地址被设置为只读,攻击者无法修改它。启用PRLRO可以提高二进制的安全性。
sstack:sstack是“Stack Smashing Protection”的缩写,表示二进制是否启用了栈破坏保护。栈破坏是指攻击者利用缓冲区溢出漏洞来篡改函数返回地址,从而控制程序的执行流程。启用Sstack可以在执行返回前检查栈帧中的数据完整性,以避免栈破坏攻击。
nx:nx是“No Execute”的缩写,表示二进制是否启用了不可执行内存保护。不可执行内存的保护可以防止攻击者将指令载入到内存中,从而造成代码执行和攻击。启用NX可以防止许多基于内存的攻击,例如ROP攻击、缓冲区溢出等。

如下图,我们发现PIE没有保护,全局变量的地址固定

PIE”指的是“位置无关可执行文件”(Position-Independent Executable),它是一种可执行文件格式,可以在加载时动态地或静态地进行地址空间随机化。这使得攻击者更难利用缓冲区溢出等漏洞。因此,启用 PIE 可以提高程序的安全性。如果程序没有启用 PIE 保护,它的地址空间将始终是相同的,这意味着攻击者可以更容易地利用缓冲区溢出漏洞。
“全局变量地址固定”意味着全局变量在内存中的地址是固定的,不会在程序的不同运行中发生变化。这使得攻击者更容易利用全局变量的漏洞,例如缓冲区溢出。因此,在可能的情况下,应该尽量避免使用全局变量,或者使用一些技术来保护它们,例如限制它们的访问范围和使用堆栈内存而不是静态内存等。

2.使用IDA

如下图

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月下花落时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值