緩衝區溢位是指程式試圖向緩衝區寫入超出預分配固定長度資料的情況。
這一漏洞可以被惡意使用者利用來++改變程式的流控制++,甚至執行**的任意片段。
1.為了方便觀察彙編語句,先安裝一些用於編譯32位c語言程式的軟體包:
輸入以下命令:
sudo apt-get update
sudo apt-get install -y lib32z1 libc6-dev-i386
sudo apt-get install -y lib32readline-gplv2-dev
2.取消隨機化堆和棧初始位址的功能,這使得猜測準確的記憶體位址變得十分困難,而猜測記憶體位址是緩衝區溢位攻擊的關鍵。
輸入sudo sysctl -w kernel.randomize_va_space=0
3.設定zsh程式進一步防範緩衝區溢位攻擊
輸入
sudo su
cd /bin
rm -sh
ln -s zsh sh
exit
4.進入32位linux環境,並設定linux終端
輸入linux 32
/bin/bash
5.設定漏洞程式
gcc編譯器有一種棧保護機制來阻止緩衝區溢位,所以我們在編譯**時需要用–fno-stack-protector
關閉這種機制。
-z execstack
用於允許執行棧。
6.設定攻擊程式
7.攻擊並獲得root許可權
輸入:
./exploit-------攻擊程式
./stack---------漏洞程式
本次實驗,我了解了漏洞攻擊,開闊了眼界。起初,自己也不太了解緩衝區溢位是什麼,自己也是查閱了書籍等各種資料又根據實驗樓的教程完成實驗,鍛鍊了自己的耐心,提高了自己的實驗能力。 緩衝區溢位漏洞簡介
緩衝區溢位是一種高階的攻擊手段,通過對緩衝區寫超長度內容從而造成溢位。破壞程式堆疊使程式執行其他命令,從而達到製造root許可權的目的,不過只有將溢位送到能夠以root許可權執行命令的區域才能見效果,哈哈哈.緩衝區利用程式將能執行的指令放在了能執行root許可權的記憶體中,從而一旦執行這些指令,我們...
緩衝區溢位漏洞實驗
根據實驗指導輸入命令安裝一些用於編譯 32 位 c 程式的軟體包 關閉位址空間隨機化功能 設定 zsh 程式 輸入命令 linux32 進入32位linux環境 在 tmp 目錄下新建乙個 stack.c 檔案,編輯 編譯該程式,並設定 set uid 在 tmp 目錄下新建乙個 exploit.c...
20155216 緩衝區溢位漏洞實驗
緩衝區溢位是指程式試圖向緩衝區寫入超出預分配固定長度資料的情況。這一漏洞可以被惡意使用者利用來改變程式的流控制,甚至執行 的任意片段。這一漏洞的出現是由於資料緩衝器和返回位址的暫時關閉,溢位會引起返回位址被重寫。關閉位址空間隨機化隨機堆 heap 和棧 stack 的初始位址的功能。1 輸入命令安裝...