2020-04-19 11:45:18 +08:00
2020-04-19 11:42:34 +08:00
2020-04-19 11:42:34 +08:00
2020-04-19 11:42:34 +08:00
2020-04-19 11:42:34 +08:00
2020-04-19 11:45:18 +08:00
2020-04-19 11:42:34 +08:00
2020-04-19 11:42:34 +08:00

缓冲区溢出攻击实验。

前置条件

  1. 确保kernel.randomize_va_space=0 -> sysctl -w kernel.randomize_va_space=0
  2. stack.c编译选项
    $ su root
    Password (enter root password)
    # gcc -o stack -z execstack -fno-stack-protector stack.c
    # chmod 4755 stack
    # exit
    
  3. exploit.c正常编译

具体流程

原理: strcpy由于不检查边界因此会覆盖函数的返回地址。函数返回是会读取覆盖的返回地址中的指令执行即执行shellcode。

  1. 使用gdb调试确定缓冲区地址addr
  2. 计算 buffer地址函数返回地址 的距离offset
  3. 攻击字符串str+offset = addr+offset+4+1,其余为0x90无操作

攻击流程

  1. 编译exploit.c与stack.c参照前置条件
  2. 执行exploit生成badfile
  3. 执行stack实现攻击
Description
No description provided
Readme 2.2 MiB
Languages
C 100%