随笔分类 - Linux exploit 开发系列
摘要:(1)原理: 使用爆破技巧,来绕过共享库地址随机化。爆破:攻击者选择特定的 Libc 基址,并持续攻击程序直到成功。这个技巧是用于绕过 ASLR 的最简单的技巧。 (2)漏洞代码 编译 (3)当随机化打开时不同的 Libc 基址 上面展示了,Libc 随机化仅限于 8 位。因此我们可以在最多 256
阅读全文
摘要:(1)原理: 地址空间布局随机化(ASLR)是随机化的利用缓解技术:堆栈地址,栈地址,共享库地址。一旦上述地址被随机化,特别是当共享库地址被随机化时,我们采取的绕过NX bit的方法不会生效,因为攻击者需要知道libc基地址。而此时我们可以采用return-to-plt技术,在这种技术中,而不是返回
阅读全文
摘要:(1)原理: 将源字符串复制到目标缓冲区可能会导致off by one。当源字符串长度等于目标缓冲区长度时,单个NULL字节将被复制到目标缓冲区上方。这里由于目标缓冲区位于堆栈中,所以单个NULL字节可以覆盖存储在堆栈中的调用者的EBP的最低有效位(LSB),这可能导致任意的代码执行。 (2)漏洞代
阅读全文
摘要:(1)漏洞代码 (2)编译文件 (3)原理: 上述漏洞代码的[1]行显示了一个整数溢出错误。strlen()的返回类型是size_t(unsigned int),它存储在unsigned char数据类型中。因此,任何大于unsigned char的最大支持值(255)的值都会导致整数溢出。因此当密
阅读全文
摘要:(1)漏洞代码 编译 (2)反汇编并绘制出漏洞代码的堆栈布局 (3)当用户输入的内容大于256位时,将溢出目标缓冲区并覆盖堆栈中存储的返回地址。通过发送一系列“A”来测试它。 EBP的值已经变成了四个A (4)根据堆栈布局,可以尝试输入256个A(buf)+8个A(对齐空间)+4A(EBP)+4个B
阅读全文
摘要:(1)原理: “NX Bit”的漏洞缓解:使某些内存区域不可执行,并使可执行区域不可写。示例:使数据,堆栈和堆段不可执行,而代码段不可写。 在NX bit打开的情况下,基于堆栈的缓冲区溢出的经典方法将无法利用此漏洞。因为在经典的方法中,shellcode被复制到堆栈中,返回地址指向shellcode
阅读全文