格式化字串漏洞利用 七 工具

2021-07-30 13:51:31 字數 1227 閱讀 5329

原文:exploiting format string vulnerabilities

譯者:飛龍

日期:2001.9.1

版本:v1.2

一旦利用完成,或者甚至在利用開發過程中,使用工具來獲取必要的偏移更加有用。一些工具也有主意識別漏洞,例如在閉源軟體中的格式化字串漏洞。我在這裡列出了四個工具,它們對我來說很有用,可能對你也是。

ltrace[8] 和strace[9] 工作方式相似:在程式呼叫它們時,它們勾住庫和系統呼叫,記錄它們的引數和返回值。這讓你能夠觀察程式如何和系統互動,將程式本身看做黑盒。

所有現存的格式化函式都是庫呼叫,並且它們的引數,最重要的是它們的位址都可以使用ltrace來觀察。任何可以使用ptrace的程序中,你都可以使用這個方式快速判斷格式化字串的位址。strace用於獲取緩衝區位址,資料讀入到該位址中,例如如果read被呼叫來讀取資料,它們之後又用作格式化字串。

了解這兩個工具的用法,你可以節省大量時間,你也可以使用它們來嘗試將 gdb 附加到過時的程式上,它沒有任何符號和編譯器優化,來尋找兩個簡單的偏移。

譯者注:在 windows 平台上,你可以使用 sysinternalssuite 來觀察檔案、登錄檔和 api 的使用情況。

gdb [7],經典的 gnu 偵錯程式,是乙個基於文字的偵錯程式,它適用於原始碼和機器**級別的除錯。雖然它看起來並不舒服,一旦你熟悉了它,它就是程式內部的強大介面。對於任何事情,從除錯你的利用,到觀察程序被利用,它都非常好用。

objdump,乙個 gnu 二進位制工具包中的程式,適用於從可執行二進位制或目標檔案中獲取任何資訊,例如記憶體布局,區段或main函式的反彙編。我們主要使用它來從二進位制中獲取 got 條目的位址。但是它可以以很多不同的方式使用。

譯者注:這兩個工具都在build-essential包中,可以執行apt-get install build-essential來安裝。

譯者注:在 windows 平台上,你可以使用 ollydbg 或者 windbg(x86,x64)來代替 gdb,你可以使用 ida pro 來代替`objdump。

格式化字串漏洞

在編寫程式時由於編寫的不規範有可能產生這個漏洞。下面乙個例子 includeint a 2 int main 編譯時使用 gcc test.c m32表示編譯成32位的程式上面這個例子便是乙個很簡單的格式化字串漏洞,產生格式化字串漏洞需要兩個條件 下面講解printf輸出的原理 eg name su...

格式化字串漏洞利用 二 格式化函式

原文 exploiting format string vulnerabilities 譯者 飛龍 日期 2001.9.1 版本 v1.2 格式化函式是一類特殊的 ansi c 函式,接受可變數量的引數,其中的乙個就是所謂的格式化字串。當函式求解格式化字串時,它會訪問向函式提供的額外引數。它是乙個轉...

格式化字串漏洞簡介

格式化字串,也是一種比較常見的漏洞型別。會觸發該漏洞的函式很有限。主要就是printf還有sprintf,fprintf等等c庫中print家族的函式。我們先來看看printf的函式宣告 int printf const char format,這個是每個學過c語言的人一定會知道 會使用的函式。先是...