linux緩衝區溢出漏洞簡介
實驗過程:
1:安裝32位編譯工具 lib32z1 libc6-dev-i386,關閉地址空間隨機化
2:安裝編譯器zsh並替換sh指向的/bin/bash(因為sh具有保護欺騙性uid程序在整個運行中不保持root許可權)
3:shellcode(彙編碼位元組填充,一共64位元組)
4:su許可權編譯stack.c
Fopen(「badfile」,r)badfile必須存在,也就是我們先運行exploit.c生成可執行文件exploit,運行就會生成badfile
gdb調試可執行文件stack
Gdbstack
Disassmain
得到彙編代碼:
5:分析得出:offset到分別進行了16位對齊操作,並且初始化esp,ebp,在棧空間接著sub指令使esp-214,也即棧向下增長分配了214*4的位元組空間,存放517位str數組,可知str
的地址在
6:設置斷點break,print出$esp地址並編譯exploit.c:
7:首先運行exploit,生成badfile二進位文件
再運行stack.c漏洞程序去讀取badfile,由於badfile在在填充字元時加入了str的起始地址
所以讀取這段指令只要把badfile中添加str的地址進行ret覆蓋即可,所以將0x080484e8加上64得到0xffffcf14,進行反向覆蓋,這裡的原因是在棧中分配數組str時,大於str的esp的空間都已經使用,而位元組填充數組的方向和棧增長的放向是相反的,所以應該以14cfffff填充buffer尾端位元組
以上操作運行完畢
--- --- --- --- --- --- --- -- ---- -------- ----
溢出操作:
如果配置沒有做好就不能夠獲得root許可權,因為linux「百毒不侵」的原因便是棧地址隨機化,其次/bin/bash下編譯器sh的保護機制,在程序運行前已經多次遇阻,無法獲得root許可權或者提示:棧溢出,核心已轉儲!
配置成功就是root!
你可能喜歡
※華盟網:2017年度十大安全熱點回顧
※女演員米凱拉iCloud帳戶遭黑客入侵
TAG:黑白之道 |