簡單的棧溢出利用

[if !supportLists]1.?[endif]?


查看hello函數


顯然,strcpy函數存在棧溢出漏洞。下面進入gdb進行操作,輸入pattern?create 100,輸出構造好的字符串,并復制。


輸入r,并把剛才復制好的字符串輸入

在0x41412941處發(fā)生了錯誤,輸入pattern?offset命令,查看與字符串初地址之間的相對位置(一步到位,直接求出偏移地址)


為了更加方便理解,下面對棧的具體變化情況進行分析。

b?main 下斷點。寄存器表,??臻g,具體執(zhí)行到哪一個匯編代碼都一覽無余。


Si單步步過、


在call指令處單步步入,ni ,注意觀察棧的變化(以上只是為了熟悉gdb的操作)。

在執(zhí)行以下操作之前,先把放回地址壓入棧中,參數的話從右往左入棧


舊的esp的位置變成新的ebp的位置,此時esp和ebp二者重合。之后擴展28H大小。



下面構造exp


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容