sleepyHolder_hitcon_2016

好久沒寫題目了,因此最近準備從新開始練起來。shell

該題很考本身對libc的malloc瞭解,雖然逆過一遍,但仍是有些不熟悉好比合並的函數。ubuntu

不過看了hav1k師傅的博客後,恍然大悟函數

記錄下思路

  1. 因爲是ubuntu16,並且沒有開PIE,因此能夠進行unlink
  2. 其次因爲釋放後未變0,因此咱們先申請一個小chunk,再把該位置釋放後,在用malloc_consolidate來將fast bin裏的函數放入unsorted bin中,後續的操做會放入small bin中
  3. 因爲delete函數裏面沒有檢查機制,因此咱們能夠再一次delete,形成double free,因爲該chunk再fast bin何unsorted bin中,因此咱們能夠把chunk申請回來,再僞造一個chunk,進行unlink
  4. 此時指針已經指向自身的-0x18處,咱們就操控了中等的chunk與小型的chunk,後面就是常規操做,劫持free爲puts,獲得libc,接着再劫持別的函數來getshell 便可
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息