2017-04-23 33 views
0

我正在讀這本書「剝削藝術」。Linux緩衝區溢出 - 對舊的開發藝術?

這是一本很好的書,但是我迄今爲止遇到的每個漏洞都不適合我。在我看來,我遵循這封信,沒有人是完美的,所以我可能仍然犯了一個錯誤。

但是我發現一些評論說,自從書被編寫以來,linux操作系統已經更新了allot。

所以我想問問,如果有人知道書中的例子是否過時,或者如果有人應該跟隨這封信,或者如果我必須設計一些代碼來工作?

注: 我讀過第60頁左右

我試着藏漢兩種編寫代碼exploit.c與手動用Perl溢出程序。

這是我一直在試圖溢出代碼:

int main(int argc, char *argv[]) 
{ 
char buffer[500]; 
strcpy(buffer, argv[1]); 
return 0; 
} 
+1

編寫操作系統的人也讀過這本書,並加入了防禦黑客的攻擊。就像不允許你在堆棧上執行代碼一樣。 –

+0

http://wiki.osdev.org/Stack_Smashing_Protector –

+0

你可能會喜歡[IO](http://io.netgarage.org/)它涉及到使用這樣的漏洞攻擊,並且文件被編譯成這樣的攻擊方式可能。 – 4e554c4c

回答

1

嗯,我沒有讀過書,但我可以說一般。

零日漏洞利用(在最新版本的軟件中起作用)並不會持續很長時間,並且在軟件作者(本書作者通常報告他們)發佈任何此類書籍之前通常無法使用。操作系統/編譯器增加了新的和新的保護措施,但這些保護措施大多隻對新編譯的代碼生效(這意味着即使在新系統上舊的代碼仍然很脆弱),並且保護措施可以避免(更加困難)。

至於你的例子。這取決於你正在試圖利用這個漏洞。但只要學習基本知識,在編譯時就應該關閉DEP,ASLR和已經提到的SSP,這樣可以很容易地工作。 如果您使用的是gcc,那麼: -fno-stack-protector,-z execstack-O0-g可能有助於發現其他問題。