-
-
[求助]一段Buffer overflow的代码请指点
-
发表于:
2017-4-8 17:18
2912
-
[求助]一段Buffer overflow的代码请指点
有些菜,请耐心指点
问题:用户在调用gets()函数时输入什么样式的字符串,可以在不知道的原始口令“Secret”的情况下绕过该口令验证函数的限制?
1.有人说只要输入长度为24的字符串,其前12个字符和后12个字符一样即可。但是我输入24个a还是提示密码错误
2.我把gets换成fgets后不管输入的密码是对是错都提示密码错误,怎么改?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char origPassword[12] = "Secret\0";
char userPassword[12];
printf("Input the password:\n");
gets(userPassword); /* 读取用户输入的口令*/
if(strncmp(origPassword, userPassword, 12) != 0)
{
printf("Password doesn't match!\n");
exit(-1);
}
/* 口令认证通过时允许用户访问*/
printf("Password is correct.\n");
return 0;
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课