类别 | 描述 | 示例代码 |
堆溢出 | 由于程序中的堆分配操作存在缺陷,导致溢出、释放后使用、二次释放等问题,攻击者可以通过构造恶意输入,在堆上溢出修改程序控制流。 | ``c char *buffer = (char *)malloc(64); strcpy(buffer, input); free(buffer); `` |
Double Free | 由于错误导致2次对同一个chunk连续释放了两次导致,我们可以通过一个动态调试例子,看看对于double free到底是如何影响堆的。 | ``c ptr0 = malloc(0x30); free(ptr0); free(ptr0); `` |
堆喷射 | 通过泄露libc的基址,进而计算得到system或其他函数的实际地址。 | ``c p64(system) libc.symbols['__malloc_hook'] 0x10 88 `` |
表格展示了常见的堆漏洞类型及其简要描述和示例代码,在实际应用中,堆利用更为复杂,涉及各种堆管理机制和防御手段,希望这些信息能够为对堆利用感兴趣的读者提供一些有益的信息,并激发进一步的学习与探索。
(图片来源网络,侵删)
小伙伴们,上文介绍堆 漏洞的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
(图片来源网络,侵删)
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/70884.html