摘要: (1)原理: 将源字符串复制到目标缓冲区可能会导致off by one。当源字符串长度等于目标缓冲区长度时,单个NULL字节将被复制到目标缓冲区上方。这里由于目标缓冲区位于堆栈中,所以单个NULL字节可以覆盖存储在堆栈中的调用者的EBP的最低有效位(LSB),这可能导致任意的代码执行。 (2)漏洞代 阅读全文
posted @ 2019-05-14 23:26 DurianTRY 阅读(568) 评论(0) 推荐(0) 编辑
摘要: (1)漏洞代码 (2)编译文件 (3)原理: 上述漏洞代码的[1]行显示了一个整数溢出错误。strlen()的返回类型是size_t(unsigned int),它存储在unsigned char数据类型中。因此,任何大于unsigned char的最大支持值(255)的值都会导致整数溢出。因此当密 阅读全文
posted @ 2019-05-14 21:51 DurianTRY 阅读(494) 评论(0) 推荐(0) 编辑
摘要: (1)漏洞代码 编译 (2)反汇编并绘制出漏洞代码的堆栈布局 (3)当用户输入的内容大于256位时,将溢出目标缓冲区并覆盖堆栈中存储的返回地址。通过发送一系列“A”来测试它。 EBP的值已经变成了四个A (4)根据堆栈布局,可以尝试输入256个A(buf)+8个A(对齐空间)+4A(EBP)+4个B 阅读全文
posted @ 2019-05-14 21:25 DurianTRY 阅读(511) 评论(0) 推荐(0) 编辑