12/24/2008

buffer overflow attack

最近為了課程上的興趣,做了一些測試

1. 先寫一個有system call的程式作為被攻擊的對象程式
2. 利用gdb 找到目的函式的位址(要跳過去執行的地方)
3. 發起buffer overflow attack(內含目的函式位址)

測試完發現一件奇怪的事情,就是不管有無開啟ASLR,這個攻擊都有效。原因可能是ASLR基本上是針對系統呼叫的函式的位址,去作隨機配置,而不是該受害程式的位址,所以不管有無ASLR,該受害程式還是會去呼叫內部libc,並且照常執行。 然而,這樣無法取得root shell。

(12/25) 今天跟老師討論一下,推斷可能是該ASLR機制只有針對某些區段或只對libc作randomize並沒有完全random,不過詳細還是要看用的ASLR是那一套機制。