堆入门5.3—UAF(Use After Free)

引用

ctfwiki:https://ctf-wiki.org/pwn/linux/user-mode/heap/ptmalloc2/use-after-free/

概念

当一个内存块被释放之后再次被使用。但是其实这里有以下几种情况

  • 内存块被释放后,其对应的指针被设置为 NULL , 然后再次使用,自然程序会崩溃。
  • 内存块被释放后,其对应的指针没有被设置为 NULL ,然后在它下一次被使用之前,没有代码对这块内存块进行修改,那么程序很有可能可以正常运转。
  • 内存块被释放后,其对应的指针没有被设置为NULL,但是在它下一次使用之前,有代码对这块内存进行了修改,那么当程序再次使用这块内存时,就很有可能会出现奇怪的问题。

而我们一般所指的 Use After Free 漏洞主要是后两种,对未置null的野指针进行利用。此外,我们一般称被释放后没有被设置为NULL的内存指针为dangling pointer。

具体的利用看题目,一般用来打印 free chunk 泄露 main_rena ,可能题目有直接调用 chunk 某位置之类的,

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据