UAF(use after free)
1、漏洞簡述:
當(dāng)一個(gè)內(nèi)存塊被釋放之后再次使用而造成的漏洞,這里主要涉及到一下這幾種狀態(tài):
????》內(nèi)存塊被釋放后,其對(duì)應(yīng)的指針被設(shè)置為 NULL , 然后再次使用,自然程序會(huì)崩潰。
????》??內(nèi)存塊被釋放后,其對(duì)應(yīng)的指針沒有被設(shè)置為 NULL ,然后在它下一次被使用之前,沒有代碼對(duì)這塊內(nèi)存塊進(jìn)行修改,那么程序很有可能可以正常運(yùn)轉(zhuǎn)。
????》?內(nèi)存塊被釋放后,其對(duì)應(yīng)的指針沒有被設(shè)置為 NULL,但是在它下一次使用之前,有代碼對(duì)這塊內(nèi)存進(jìn)行了修改,那么當(dāng)程序再次使用這塊內(nèi)存時(shí),就很有可能會(huì)出現(xiàn)奇怪的問題。
2、這里我們指的UAF漏洞一般是說的后面兩種,這種被釋放之后沒有被設(shè)置為null的內(nèi)存指針成為dangling pointer
3、一般來說我們的UAF漏洞都會(huì)涉及到增,刪,查這幾個(gè)功能
并且UAF集中體現(xiàn)在刪這一步,只是單純的進(jìn)行了free,但是沒有設(shè)置為null值
一個(gè)大體上的思路與這個(gè)的總結(jié)示意:

(存?zhèn)€疑問,看的ctfwiki的例題,沒有想明白為什么存入的size可以是32位,反匯編代碼給的是8u啊?指定嘛?)

大概就這樣,小小的一步,雖然感覺現(xiàn)階段UAF還沒和堆溢出聯(lián)系上就是了。
標(biāo)簽: