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

简答题

试题4:( 19分)

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

……

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个字符的用户名和密码

解析:

根据提供的程序代码,攻击者可以尝试利用缓冲区溢出的漏洞来绕过登录验证,直接执行work()函数。在程序提示输入用户名和密码时,攻击者可以输入一个超长(超过16个字符)的用户名和密码。由于程序没有对输入进行充分的边界检查和处理,超长的输入可能会导致缓冲区溢出,从而覆盖掉原本用于存储返回地址的存储空间。如果攻击者输入的字符串中包含了指向work()函数的地址或者其他合适的指令,那么在执行缓冲区溢出后,程序可能会跳转到这些地址并执行相应的代码,从而绕过登录验证直接执行work()函数。

创作类型:
原创

本文链接:攻击者如何利用程序漏洞绕过登录验证执行work()函数?

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

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

分享考题
share