刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

试题二(共15分)

阅读下列说明,回答问题1至问题6,将解答填入答题纸的对应栏内。

【说明】

按照网络安全测评的实施方式,测评主要包括安全功能检测、安全管理检测、代码安全审查、安全渗透、信息系统攻击测试等。王工调阅了部分后台处理代码,发现密码验证阶段存在安全漏洞,代码如下:

#define PASSWORD "1234567"

int verify_password (char *password)

{

   int authenticated;

   char buffer[8];

   authenticated=strcmp(password,PASSWORD);

   strcpy(buffer,password);

   return authenticated;

}

main()

{

   int valid_flag=0;

   char password[1024];

   while(1)

   {

      printf("please input password: ");

      scanf("%s", password);

      valid_flag=verify_password(password);

      if(valid_flag)

      {

         printf("incorrect password!\n\n");

      }

      else

      {

         printf("Congratulation! You have passed the verification!\n");

         break;

      }

   }

}

   

王工在阅读后台处理代码时发现密码验证部分存在哪种漏洞?请分析说明。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

缓冲区溢出

解析:

王工在阅读后台处理代码时发现密码验证阶段存在安全漏洞,具体的问题在于函数verify_password中的字符数组buffer定义长度为8,然而没有对输入的密码长度进行检查和限制,这可能导致缓冲区溢出的问题。当输入的密码长度超过数组buffer的长度时,超出部分的数据可能会覆盖相邻的内存空间,造成安全漏洞。因此,这段代码存在缓冲区溢出的漏洞。

创作类型:
原创

本文链接:王工在阅读后台处理代码时发现密码验证部分存在哪种漏洞?请分析说明。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share