登录   |   注册
    准考证打印   论文投票   报考指南   论文辅导   软考培训   郑重申明  
您现在的位置:  首页 > 软考学苑 > 信息安全工程师 > 信安题库 > 每日一练 >> 正文
正文
试题五(共8分)
来源: 作者: 时间;2017-11-27 16:34:19 点击数: 尚大软考交流群:376154208
试题五(共8分) 阅读下列说明和代码,回答问题1和问题2,将解答卸载答题纸的对应栏内。
【说明】
某一本地口令验证函数(C语言环境,X86_32指令集)包含如下关键代码:某用户的口令保存在字符数组origPassword中,用户输入的口令保存在字符数组userPassword中,如果两个数组中的内容相同则允许进入系统。[...]char origPassword[12]=“Secret&rdquo
<尚大教育,教育至上,人才为大:sdedu.cc>

 试题五(共8分) 

    阅读下列说明和代码,回答问题1和问题2,将解答卸载答题纸的对应栏内。 
【说明】 
    某一本地口令验证函数(C语言环境,X86_32指令集)包含如下关键代码:某用户的口令保存在字符数组origPassword中,用户输入的口令保存在字符数组userPassword中,如果两个数组中的内容相同则允许进入系统。

[...]

char origPassword[12]=“Secret”;

char userPassword[12];

[...]

gets(userPassword);   /*读取用户输入的口令*/

[...]

 

if(strncmp(origPassword,userPassword,12)!=0)

{

printf(Password doesnt match!\n);

Exit(-1);

}

[...]

/*口令认证通过时允许用户访问*/

[...]

【问题1】(4分)

用户在调用gets()函数时输入什么样式的字符串,可以在不知道原始口令“Secret”的情况下绕过该口令验证函数的限制?

【问题2】(4分)

上述代码存在什么类型的安全隐患?请给出消除该安全隐患的思路。

 

 

 

尚大教育-软考学院-参考答案:

【问题1尚大教育-参考答案】4分)

只要输入长度为24的字符串,其前12个字符和后12个字符一样即可。

【问题2尚大教育-参考答案】4分)

gets()函数必须保证输入长度不会超过缓冲区,一旦输入大于12个字符的口令就会造成缓冲区溢出。 
解决思路:使用安全函数来代替gets()函数,或者对用户输入进行检查和校对,可通过if条件语句判断用户输入是否越界。 

<尚大教育,教育至上,人才为大:sdedu.cc>
 
   各省软考办 
 
来顶一下
返回首页
返回首页
上一篇: 试题四(共18分)
下一篇: 1、以下有关信息安全管理员职责的叙述
 相关文章
 
 
跟贴共
笔 名 :   验证码:
网友评论仅供其表达个人看法,并不表明尚大教育同意其观点或证实其描述
距离2023年05月27-28日软考考试还有
尚大软考交流群:376154208
软考各地考务机构
历年真题汇总




各省市软考报名简章