什麼是一個格式字符串漏洞?
了解一個格式字符串漏洞是,您首先需要知道什麼是格式字符串。 一個格式字符串是一種告訴C編譯器應該如何格式的數字時,打印它們。
格式字符串在C
在C編程語言有一些職能接受一個格式字符串作為參數。 這些職能包括fprintf ,輸出, sprintf , snprintf , vfprintf , vprintf , vsprintf , vsnprintf , setproctitle ,系統記錄,等等。
其中最常用的是輸出。 使用輸出是:
輸出格式[論點... ]
輸出的產出的價值[論點... ]在指定格式的格式 。
一個例子呼籲輸出是:
輸出( “區域代碼是: % d個\ N ”的303號) ;
支持的格式說明符不同於一個C編譯器的未來。 支持的格式說明符下的FreeBSD是:
% d個 轉換整數簽署杜威字符串。 % u個 無符號整數轉換為十進制字符串。 %我 轉換為十進制整數簽署字符串;整數可以是十進制,八進制(以領先0 )或十六進制(以領先加上0x ) 。 % ö 無符號整數轉換為八進制字符串。 % X或% × 無符號整數轉換為十六進制字符串,使用數字`` 0123456789abcdef ''的X和`` 0123456789ABCDEF ''為X ) 。 % ç 轉換成整數的Unicode字符它代表。 % s的 沒有轉換,只需插入字符串。 %女 轉換浮點數以簽署杜威字符串的形式xx.yyy ,那裡的一些Y的是所確定的精確度(默認值: 6 ) 。 如果精度為0然後沒有小數點輸出。 % E或% é 轉換浮點數以科學記數法的形式x.yyye + -子怡,那裡的一些Y的是所確定的精確度(默認值: 6 ) 。 如果精度為0然後沒有小數點輸出。 如果電子表格是用來印刷然後E是不是體育 % g或% G 如果指數小於-4或大於或等於精度,然後轉換浮點數為% E或%大腸桿菌 否則轉換為%樓 尾隨零和尾部小數點的省略。 % % 沒有轉換:剛才插入% 。
欲了解更多有關格式說明符,是指該名男子網頁“格式”在您最近的Unix系統。
格式字符串漏洞攻擊
格式字符串漏洞攻擊分為三類:拒絕服務,閱讀和寫作。
- 格式字符串漏洞拒絕服務攻擊的特點是利用多個實例的格式說明符% s的讀取數據起飛的堆棧,直到程序試圖讀取數據,從一個非法的地址,這將導致程序崩潰。
- 格式字符串漏洞閱讀攻擊通常利用% ×格式指示符打印節的記憶,我們通常不會有機會獲得。
- 格式字符串漏洞編寫攻擊利用的% d , % U或% ×格式說明符覆蓋指令指針和部隊執行用戶提供的shell代碼。
額外的信息來源格式化字符串漏洞
欲了解更多有關利用格式字符串漏洞,是指利用格式化字符串漏洞的惡棍,和格式化字符串攻擊的蒂姆Newsham 。
|
漏洞管理傻瓜
我們的朋友在Qualys的是提供免費的副本,電子版的漏洞管理傻瓜以技術問題解答讀者。 漏洞管理傻瓜:
| |






