2020年10月19日来源:信管网 作者:cnitpm
信息安全工程师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=6
往期信息安全工程师每日一练试题汇总:www.cnitpm.com/class27-6-1.aspx
信息安全工程师案例分析每日一练试题(2020/10/18)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=6&day=2020/10/18
点击查看:更多信息安全工程师习题与指导
信息安全工程师案例分析每日一练试题内容(2020/10/18)
阅读下列说明和代码,回答问题1和问题2,将解答卸载答题纸的对应栏内。
【说明】
某一本地口令验证函数(C语言环境,X86_32指令集)包含如下关键代码:某用户的口令保存在字符数组origPassword中,用户输入的口令保存在字符数组userPassword中,如果两个数组中的内容相同则允许进入系统。
【问题1】(4分)
用户在调用gets()函数时输入什么样式的字符串,可以在不知道原始口令“Secret”的情况下绕过该口令验证函数的限制?
【问题2】(4分)
上述代码存在什么类型的安全隐患?请给出消除该安全隐患的思路。
信管网考友试题答案分享:
信管网wl.2017:
问题1:输入超过数组定义长度的值时。<br>问题2:缓存区溢出,在调用gets()函数时增加数组越界的判断。
信管网cnitpm57427373058:
输入字符串前12个字符跟后12个字符一样就可以绕过<br>存在缓冲区溢出攻击隐患,检查用户输入的口令长度
信管网cnitpm38832697408:
1:24个字符串,前12个字符串和后12个相同<br>2:存在缓存溢出的隐患,换用更安全的函数取代gets()函数
信管网江苏省泰州市考友:
问题1:输入长度为24位的字符串,其中前后12位字符一样。
问题2:gets()函数必须保证输入长度不会超过缓冲区,一旦输入大于12个字符的口令就会造成缓冲区溢出。
消除思路:使用安全函数来代替gets()函数,或者对用户输入进行检查和校对,可通过if条件语句判断用户输入是否越界。
信管网cnitpm439753710:
问题1:
字符长度为12的字符串;输入两段长度为12且字符串相同的字符串。
问题2:
缓冲区溢出,
温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
相关推荐