高版本libc堆fd指標繞過

蟇窳瓨發表於2024-06-03

高版本glibc堆fd指標加密繞過

參考資料:[原創]glibc高版本堆題攻擊之safe unlink-Pwn-看雪-安全社群|安全招聘|kanxue.com

堆指標加密是在2.32版本引進的,作用在tcache和fastbin。主要是對fd指標進行異或操作來使得不好利用UAF等需要fd指標的手法。

從一個例子瞭解這個保護機制bin

加密過程:當前被釋放堆塊fd指標地址>>12(就是3位)後,與當前fd指標應該指向的位置(在tchache中就是前一個堆塊的fd指標地址)進行異或^操作,便完成加密。把加密內容放入fd指標。 ---

特別注意:第一個釋放的堆塊是與0進行異或,因為它前面沒有堆。其fd所存的值便是金鑰,可以破解各個堆的地址。

這裡舉一個例子,例題只釋放2個堆入tcache。

image-20240602185025483

image-20240602184314087

tchache[0]處的加密運算過程:

0x64aace8fe^0x64aace8fe2a0=0x000064ac84230a5e
金鑰^明文=密文

破解如下(讓密文^金鑰=明文)

img

相關文章