我尝试学习缓冲区溢出漏洞。
我有这段代码:
#include <stdio.h>
int read_req(FILE *p) {
char buf[16];
int i;
fgets(buf, 1024, p);
i = atoi(buf);
return i;
}
int main() {
FILE *fp = fopen("/home/assignment/shellcode", "r");
int x = read_req(fp);
printf("x = %d\n", x);
}
我想使用这个shellcode来利用这段代码:
#include <stdio.h>
void main() {
char *name[2];
name[0] = "/bin/sh";
name[1] = NULL;
/* Launch shell */
execve(name[0],name, NULL);
}
但我不知道如何使用它,我也听说fgets不会导致缓冲区溢出问题..我很困惑
想你
答案 0 :(得分:0)
在文件/home/assignment/shellcode
中放置几百个'A'并在gdb
调试器下运行易受攻击的应用程序。这应该覆盖eip / rip,足以让你开始。