代码安全机制与实现技术

代码安全机制与实现技术

ID:35518887

大小:94.50 KB

页数:7页

时间:2019-03-25

代码安全机制与实现技术_第1页
代码安全机制与实现技术_第2页
代码安全机制与实现技术_第3页
代码安全机制与实现技术_第4页
代码安全机制与实现技术_第5页
资源描述:

《代码安全机制与实现技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、东华大学2008~2009学年第二学期期终试题踏实学习,弘扬正气;诚信做人,诚实考试;作弊可耻,后果自负。课程名称代码安全机制与实现技术使用专业信息安全06级班级_____________________姓名________________学号__________试题得分一二三四五六七八九十总分㈠判断题(每题2分,共20分。正确的√,错误的×)⒈SQL注入攻击易于实施,而且危害性大。(√)⒉安全性漏洞通常情况下不影响软件的正常功能。(√)⒊word文档并非可执行文件,所以是安全的,不会导致恶意代码的执行。(×)⒋目前防火墙不能对SQL注入漏洞进行有效地防范。(√)⒌程序中的局部变量和函

2、数返回地址都保存在系统栈。(√)⒍同一个API函数的入口地址在不同的操作系统中往往会有差异。(√)⒎printf函数虽然是输出函数,但也可能被攻击者利用来修改函数返回地址,劫持进程,植入shellcode攻击代码。(√)⒏网站系统中,如果在用户输入数据的限制方面存在缺陷,将会使服务器变成SQL注入攻击和XSS攻击的目标。(√)⒐防范SQL注入攻击,关键是在客户端验证用户的输入。(×)⒑调用printf函数时,参数必须按照从左向右的顺序入栈。(×)㈡简答题(每题5分,共25分)⒈向系统栈中压入数值0可以用一条push0指令完成,但为什么shellcode的设计中却不能用push0,而要用

3、xorebx,ebx和pushebx两条指令来实现?答:之所以用ebx清零后入栈是为了避免“push0”中的NULL,否则植入的shellcode机器码会被如strcpy等字符串复制、输入函数截断。7注意:填写内容不要超出以上格式,第二页的边距和第一页一样出题人(签名):__________室负责人(签名):_________⒉请简述缓冲区溢出攻击的原理、后果及如何防范。答:(3分)当程序写入超过缓冲区的边界时,这就是所谓的“缓冲区溢出”。(4分)发生缓冲区溢出时,会覆盖下一个相邻的内存块。缓冲区溢出攻击就是通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使

4、程序转而执行其它指令,以达到攻击的目的。(3分)造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数,因此在书写代码时要注意边界检查来实现缓冲区的保护,使得缓冲区溢出不可能出现。⒊为什么用户只是点击了一个URL链接,并没有执行任何其他操作,也会中木马?答:因为如果用户的浏览器在解析HTML文件时存在缓冲区溢出漏洞,那么攻击者就可以精心构造一个承载着恶意代码的HTML文件,并把其链接发给用户。当用户点击这种链接时,漏洞被触发,从而导致HTML文件中所承载的恶意代码(shellcode)被执行。这段代码通常是在没有提示的情况下去指定的地方下载木马客户端并运行。⒉请简述shellcode在

5、注入到被攻击代码后,主要有哪两种内存布局方式?这两种布局方式的各自特点是什么?如果shellcode的长度小于被其溢出的缓冲区,适于采用哪种布局方式?答:(4分)shellcode在注入到被攻击代码后,主要有两种内存布局方式。其一,把shellcode直接保存在植入缓冲区中,位于函数返回地址之前。通过将函数返回地址覆盖为缓冲区的首地址来定位shellcode。其二,把shellcode布置在函数返回地址之后,使用跳转指令jmpesp来定位shellcode。(4分)第一种方法的优点是可以合理利用缓冲区,使攻击串的总长度减小;同时对程序破坏小,比较稳定。第二种方法的优点是不用担心自身被压

6、栈数据破坏,但可能会破坏前栈帧数据而引发问题。7注意:填写内容不要超出以上格式,第二页的边距和第一页一样出题人(签名):__________室负责人(签名):_________(2分)如果shellcode的长度小于被其溢出的缓冲区,适于采用第一种布局方式。⒋某一Web考试系统要求考生输入身份证号码来查询各门课的考试成绩,它通过以下SQL语句从数据库查询记录:sql="select*fromscorewhereid='"+user_id+"'"其中:user_id表示身份证号,score是存放成绩的数据库表。请问攻击者该如何实施SQL注入攻击以绕过后台的身份证号码验证?答:攻击者可以这

7、样构造输入字符串以绕过后台的身份证号码验证:100'or1=1这样,构造的查询命令就是select*fromscorewhereid='100'or1=1由于id='100'or1=1永远为真,所以数据库查询记录会返回score数据库中所有用户的记录信息。⒌请简述SQL注入攻击的基本原理及如何防范SQL注入攻击。答:SQL注入攻击的本质是利用Web应用程序中所输入的SQL语句的语法处理,针对的是Web应用程序开发者编程过程中未对SQL语句传入的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。