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

简答题

某验证用户登陆的程序代码片段如下。

……

void work ()

{

printf("start a internal process!\n");

}


Int main ()

{

char passwd[16]; char Userid[16];

printf("Please input your ID :"); 

gets(Userid);

printf("Please input your password:"); 

gets(passwd);


if (!strcmp(Userid, "Admin") &&~strcmp(passwd,"initpass")) 

printf("Welcome Admin! \n");

}

关于某验证用户登录的程序,攻击者如何尝试绕过登录验证直接执行work()函数?

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

答案:

在程序提示输入用户名和密码时,输入一个超长(超过16个字符的用户名和密码

解析:

根据提供的程序代码片段,程序使用了固定的数组长度(16个字符)来存储用户名(Userid)和密码(passwd)。当程序提示用户输入用户名和密码时,如果攻击者输入的用户名或密码超过这个固定长度,就可能触发缓冲区溢出漏洞。这种溢出可能会导致程序在内存中的布局被破坏,进而允许攻击者执行任意的代码,包括调用work()函数。因此,攻击者可以通过输入超长用户名和密码来尝试触发缓冲区溢出漏洞,从而绕过正常的登录验证并执行work()函数。

创作类型:
原创

本文链接:关于某验证用户登录的程序,攻击者如何尝试绕过登录验证直接执行work()函数?

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

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

分享考题
share