簡體   English   中英

緩沖區溢出 - 程序以SIGSEGV信號終止

[英]Buffer overflow - Program terminated with signal SIGSEGV

我正在學習緩沖區溢出漏洞利用。 我寫了這樣一個易受攻擊的程序:

#include <stdio.h>
#include <string.h>

main(int argc, char *argv[])
{
    char buffer[80];
    strcpy(buffer, argv[1]);
    return 1;
}

很簡單的程序。 想法是覆蓋用於返回libc函數start_main的返回地址。 一切都很順利,我使用GDB來驗證返回地址是否被指向內存中shellcode的正確地址覆蓋。

但是,當我想要獲得一個shell時,會出現:

Program received signal SIGSEGV, Segmentation fault. 0xbffff178 in ?? ()

0xbffff178是返回覆蓋的返回地址,它確實指向shellcode我很確定。 有幫助嗎?

您可能有一個無執行堆棧,禁止從某些地址范圍執行代碼。 您需要使用-z execstack進行編譯以強制堆棧可執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM