fbpx
维基百科

Return-to-libc攻击


Return-to-libc攻击(缩写:ret2libc),即“返回至C标准库攻击”,是一种电脑安全攻击。这种攻击方式一般应用于缓冲区溢出中,其堆栈中的返回地址被替换为另一条指令的地址,并且堆栈的一部分被覆盖以提供其参数。这允许攻击者调用现有函数而无需注入恶意代码到程序中。

缩写为libc的共享库是C标准函数库,提供了类UNIX操作系统中的C运行时支持。尽管攻击者可以让代码返回到任意位置,但绝大多数情况下的目标都是libc。这是因为libc总是会被链接到程序中,并且它提供了对攻击者而言一些相当有用的函数(如system()调用可以只附加一个参数即执行外部程序)。这即是尽管返回地址可以指向另一个完全不同的区域,但这种攻击仍被称为return-to-libc的原因。

对 return-to-libc 攻击的防护

一个被标记了不可执行位的堆栈可以阻止一些缓冲区溢出攻击,但无论如何它无法防止return-to-libc攻击。因为return-to-libc攻击只用到了标记为可执行的代码(libc中的函数均为可执行)。当然,攻击者也只能够调用已存在的函数。Stack-smashing 防护能够阻止这种溢出,因为它可以检测到损坏的堆栈并且有可能移除被攻击的(segment)。地址空间布局随机化 (ASLR)使这种攻击在64位平台上变得几乎不可能成功,因为所有函数的内存地址都是随机的。在32位系统中,ASLR能够提供部分防护,因为只有16位地址可供用于随机化,这可以用暴力攻击在很少的几分钟内破解。[1]

相关攻击

面向返回编程 是这种攻击使用的精心完成的技术,并且,通过串联起每次单独的小型攻击以执行小数目的指令,可被用于进行更一般的操作。

参见

参考资料

  1. ^ Shacham, Hovav; Page, Matthew; Pfaff, Ben; Goh, Eu-Jin; Modadugu, Nagendra; and Boneh, Dan. On the Effectiveness of Address-Space Randomization (PDF). Proceedings of Computer and Communications Security (CCS'04), October 25–29, 2004, Washington (DC). [2011-07-22]. (原始内容 (PDF)于2011-09-15). 

外部链接

  • Bypassing non-executable-stack during exploitation using return-to-libc(页面存档备份,存于互联网档案馆) by c0ntex at InfoSecWriters.com

return, libc攻击, 本條目翻譯自其他語言維基百科, 需要精通本領域的編者協助校對翻譯, 如果您精通本領域, 又能清楚地將來源語言翻譯為中文, 歡迎您協助參與校對與修訂, 原文参见维基数据, 缩写, ret2libc, 返回至c标准库攻击, 是一种电脑安全攻击, 这种攻击方式一般应用于缓冲区溢出中, 其堆栈中的返回地址被替换为另一条指令的地址, 并且堆栈的一部分被覆盖以提供其参数, 这允许攻击者调用现有函数而无需注入恶意代码到程序中, 缩写为, href, libc, html, class, redir. 本條目翻譯自其他語言維基百科 需要精通本領域的編者協助校對翻譯 如果您精通本領域 又能清楚地將來源語言翻譯為中文 歡迎您協助參與校對與修訂 原文参见维基数据 Return to libc攻击 缩写 ret2libc 即 返回至C标准库攻击 是一种电脑安全攻击 这种攻击方式一般应用于缓冲区溢出中 其堆栈中的返回地址被替换为另一条指令的地址 并且堆栈的一部分被覆盖以提供其参数 这允许攻击者调用现有函数而无需注入恶意代码到程序中 缩写为 a href Libc html class mw redirect title Libc libc a 的共享库是C标准函数库 提供了类UNIX操作系统中的C运行时支持 尽管攻击者可以让代码返回到任意位置 但绝大多数情况下的目标都是libc 这是因为libc总是会被链接到程序中 并且它提供了对攻击者而言一些相当有用的函数 如system 调用可以只附加一个参数即执行外部程序 这即是尽管返回地址可以指向另一个完全不同的区域 但这种攻击仍被称为return to libc的原因 目录 1 对 return to libc 攻击的防护 2 相关攻击 3 参见 4 参考资料 5 外部链接对 return to libc 攻击的防护 编辑一个被标记了不可执行位的堆栈可以阻止一些缓冲区溢出攻击 但无论如何它无法防止return to libc攻击 因为return to libc攻击只用到了标记为可执行的代码 libc中的函数均为可执行 当然 攻击者也只能够调用已存在的函数 Stack smashing 防护能够阻止这种溢出 因为它可以检测到损坏的堆栈并且有可能移除被攻击的段 segment 地址空间布局随机化 ASLR 使这种攻击在64位平台上变得几乎不可能成功 因为所有函数的内存地址都是随机的 在32位系统中 ASLR能够提供部分防护 因为只有16位地址可供用于随机化 这可以用暴力攻击在很少的几分钟内破解 1 相关攻击 编辑面向返回编程 是这种攻击使用的精心完成的技术 并且 通过串联起每次单独的小型攻击以执行小数目的指令 可被用于进行更一般的操作 参见 编辑缓冲区溢出 堆栈溢出 Stack smashing防护 不可执行位 地址空间布局随机化 面向返回编程参考资料 编辑 Shacham Hovav Page Matthew Pfaff Ben Goh Eu Jin Modadugu Nagendra and Boneh Dan On the Effectiveness of Address Space Randomization PDF Proceedings of Computer and Communications Security CCS 04 October 25 29 2004 Washington DC 2011 07 22 原始内容存档 PDF 于2011 09 15 引文使用过时参数coauthors 帮助 外部链接 编辑Bypassing non executable stack during exploitation using return to libc 页面存档备份 存于互联网档案馆 by c0ntex at InfoSecWriters com 取自 https zh wikipedia org w index php title Return to libc攻击 amp oldid 67862371, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。