1. 程式人生 > 其它 >hitcon_2018_children_tcache(off by null)

hitcon_2018_children_tcache(off by null)

拿到題目例行檢查

(我就不放了)

將程式放入ida中

很明顯的堆的題目,然後我們進入add函式

可以看到將s複製到dest裡面,說明存在off by null 漏洞

這道題目我也上網查詢了師傅們的wp(我沒想通咋打)

漏洞利用思路: 首先我們先建立三個chunk

chunk3是為了防止chunk2的向下合併,,當我們0和1(表示index的順序)free掉的時候 我們可以通過申請1去修改2的pre_size 使得2向上面合併,然後我們再將1釋放掉,這樣012就合併了 然後我們繼續申請一個0大小的chunk,這個chunk會從合併的chunk分出來

但是我們可以通過show(0)去洩露出來libc的基址,這樣我們就可以獲得one_gadget了

最後我們申請一個0x68的chunk,然後將0和2都釋放掉(1就是被free掉的chunk)在申請一個chunk

可以看到這個chunk的fd是我們輸入的值,

我們就可以通過這個chunk在malloc_hook的位置寫上one_gadget ,因為add的時候當使用malloc的時候就會觸發malloc_hook,所以我們需要手動的去獲得shell

完整exp:

成功的獲得flag

結束,加油!!