软题库 培训课程
当前位置:信管网 >> 案例分析 >> 文章内容
某一本地口令验证函数(c语言环境,x86_32指令集)包含如下关键代码:某用户的口令保存在字符数组origpassw
来源:信管网 2017年04月16日 【所有评论 分享到微信

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

【问题1】(4分)
用户在调用gets()函数时输入什么样式的字符串,可以在不知道原始口令“Secret”的情况下绕过该口令验证函数的限制?
【问题2】(4分)
上述代码存在什么类型的安全隐患?请给出消除该安全隐患的思路。
七酚(cnitpm.com) 14:59:11
这个是信息安全工程师的考试题吗
2017-03-27
隐形人(cnitpm.com) 15:00:03
是的
七酚(cnitpm.com) 15:00:24
还考代码啊
七酚(cnitpm.com) 15:00:55
突然发现难度好大
七酚(cnitpm.com) 15:01:11
这个看着是在破译登录密码规则
隐形人(cnitpm.com) 15:01:16
是想考缓冲区溢出这个知识点的
隐形人(cnitpm.com) 15:01:29
但是给的答案我看不明白
55654424(cnitpm.com) 15:02:47
看代码崩溃崩溃
15:11:51 5.⒋з⒉︱加入本群。
15:12:57碧海蓝天加入本群。
JOKER(cnitpm.com) 15:16:43
那个就是C语言里的字符串比较啊
隐形人(cnitpm.com) 15:17:13
是的,但是第一小问的答案没看懂
JOKER(cnitpm.com) 15:19:00
应该是指gets()函数不安全,容易造成缓冲区溢出
隐形人(cnitpm.com) 15:20:09
是的,但是第一问的答案说输入24个字符就能绕过密码,顺利通过,我理解不了
松 竹 梅(cnitpm.com) 15:22:47
应该是某些特殊字符
冬日暖阳(cnitpm.com) 15:23:20
覆盖
隐形人(cnitpm.com) 15:23:59
我编译了一下,答案是对的
松 竹 梅(cnitpm.com) 15:25:40

光禄勋(cnitpm.com) 15:26:45
get应该是读到读到换行符或EOF时停止,没上限
光禄勋(cnitpm.com) 15:27:03
你编译的时候没警告么?
光禄勋(cnitpm.com) 15:27:26
the `gets' function is dangerous and should not be used.
JOKER(cnitpm.com) 15:28:05
visual studio会提示使用gets_s(cnitpm.com)
光禄勋(cnitpm.com) 15:29:15
我现在没想通,输入24个字符,应该是覆盖了什么东西,到底覆盖了啥?
xuan(cnitpm.com) 15:33:30
大概就是~gets这个口令溢出~就是我输入一个24个字符的密码~头12个和后12个一样~然后系统由于溢出~把后12个判断为系统预留的密码了~这样前后对应就能进入了~
JOKER(cnitpm.com) 15:34:47
应该是这样的
光禄勋(cnitpm.com) 15:35:13
妹的,突然间没信心了
隐形人(cnitpm.com) 15:38:56
应该是的,这是异常的情况,编译出来也确实是这么个结果

扫码关注公众号

温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

相关内容

发表评论  查看完整评论  

推荐文章