漏洞學習 1 緩衝區溢位導致的危險

2021-06-04 16:20:10 字數 427 閱讀 6669

開始著手漏洞學習,發現了乙個自己常犯的危險行為,用strcpy函式去拷貝沒有先驗證。

看如下**:

#include #include void sayhello(char * str)

int main(int argc, char** argv)

我們會發現,如果是一般的合法執行,程式應該是沒有什麼問題的。但是使用者不是程式設計師,不會考慮那麼多。如果輸入字串多餘7個,那麼會出現什麼現象呢?sayhello函式中buffer的長度只有8。但是輸入比如說10個字元,則合格時候,棧的結構就要被破壞了。既是retn的位址,就不是正確的了。而且,還有可能是危險資料。攻擊者可以將精選準備的資料插入到裡面,然後sayhello之後,程式就給攻擊者控制了。至於具體的資料,我還得繼續學習學習,堆疊結構還有些困惑,有待繼續學習。

緩衝區溢位漏洞簡介

緩衝區溢位是一種高階的攻擊手段,通過對緩衝區寫超長度內容從而造成溢位。破壞程式堆疊使程式執行其他命令,從而達到製造root許可權的目的,不過只有將溢位送到能夠以root許可權執行命令的區域才能見效果,哈哈哈.緩衝區利用程式將能執行的指令放在了能執行root許可權的記憶體中,從而一旦執行這些指令,我們...

緩衝區溢位漏洞實驗

根據實驗指導輸入命令安裝一些用於編譯 32 位 c 程式的軟體包 關閉位址空間隨機化功能 設定 zsh 程式 輸入命令 linux32 進入32位linux環境 在 tmp 目錄下新建乙個 stack.c 檔案,編輯 編譯該程式,並設定 set uid 在 tmp 目錄下新建乙個 exploit.c...

20155216 緩衝區溢位漏洞實驗

緩衝區溢位是指程式試圖向緩衝區寫入超出預分配固定長度資料的情況。這一漏洞可以被惡意使用者利用來改變程式的流控制,甚至執行 的任意片段。這一漏洞的出現是由於資料緩衝器和返回位址的暫時關閉,溢位會引起返回位址被重寫。關閉位址空間隨機化隨機堆 heap 和棧 stack 的初始位址的功能。1 輸入命令安裝...