代码安全机制与实现技术.docx

上传人:黑** 文档编号:71515914 上传时间:2022-04-07 格式:DOCX 页数:7 大小:22.50KB
返回 下载 相关 举报
代码安全机制与实现技术.docx_第1页
第1页 / 共7页
代码安全机制与实现技术.docx_第2页
第2页 / 共7页
代码安全机制与实现技术.docx_第3页
第3页 / 共7页
点击查看更多>>
资源描述
东华大学20型20Q2学年第二学期期终试题踏实学习,弘扬正气;诚信做人,诚实考试;作弊可耻,后果自负。课程名称 代码安全机制与实现技术使用专业信息安全06级班级 姓名 学号试题得分-.四五六七八九I-总分判断题(每题2分,共20分。正确的J,错误的X)1 . SQL注入攻击易于实施,而且危害性大。(J)2 .安全性漏洞通常情况下不影响软件的正常功能。(J )3 . word文档并非可执行文件,所以是安全的,不会导致恶意代码的执行。(X)4 .目前防火墙不能对SQL注入漏洞进行有效地防范。(V )5 .程序中的局部变量和函数返回地址都保存在系统栈。(V )6 .同一个API函数的入口地址在不同的操作系统中往往会有差异。(V )7 .priiUf函数虽然是输出函数,但也可能被攻击者利用来修改函数返回地址,劫持进程,植入shellcode攻击代码。(J )8 .网站系统中,如果在用户输入数据的限制方面存在缺陷,将会使服务器变成SQL注入攻 击和XSS攻击的目标。(V )9 .防范SQL注入攻击,关键是在客户端验证用户的输入。(X)10 .调用printf函数时,参数必须按照从左向右的顺序入栈。(*)简答题(每题5分,共25分)1 .向系统栈中压入数值0可以用一条push 0指令完成,但为什么shellcode的设计中却不能 用push 0,而要用xorebx, ebx和push ebx两条指令来实现?答:之所以用ebx清零后入栈是为了避免“push 0”中的NULL,否则植入的shellcode机器码会被如strcpy等字符串复制、输入函数截断。2 .请简述缓冲区溢出攻击的原理、后果及如何防范。答:(3分)当程序写入超过缓冲区的边界时,这就是所谓的“缓冲区溢出”。(4分)发生缓冲区溢出时,会覆盖下一个相邻的内存块。缓冲区溢出攻击就是通过往程 序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而 执行其它指令,以达到攻击的目的。(3分)造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数,因此在书写代码时 要注意边界检查来实现缓冲区的保护,使得缓冲区溢出不可能出现。3.为什么用户只是点击了一个URL链接,并没有执行任何其他操作,也会中木马?答:因为如果用户的浏览器在解析HTML文件时存在缓冲区溢出漏洞,那么攻击者就可以精 心构造一个承载着恶意代码的HTML文件,并把其链接发给用户。当用户点击这种链接 时;漏洞被触发,从而导致HTML文件中所承载的恶意代码(shellcode)被执行。这段代码 通常是在没有提示的情况下去指定的地方下载木马客户端并运行。2.请简述shellcode在注入到被攻击代码后,主要有哪两种内存布局方式?这两种布局方式的 各自特点是什么?如果shellcode的长度小于被其溢出的缓冲区,适于采用哪种布局方式? 答:(4分)shellcode在注入到被攻击代码后,主要有两种内存布局方式。其一,把shellcode直接保存在植入缓冲区中,位于函数返回地址之前。通过将函数返回地址覆盖为缓冲区的 首地址来定位shellcode。其二,把shellcode布置在函数返回地址之后,使用跳转指令jmp esp 来定位 shellcodeo(4分)第一种方法的优点是可以合理利用缓冲区,使攻击串的总长度减小;同时对程序破 坏小,比较稳定。第二种方法的优点是不用担心自身被压栈数据破坏,但可能会破坏前栈 帧数据而引发问题。(2分)如果shellcode的长度小于被其溢出的缓冲区,适于采用第一种布局方式。4 .某一 Web考试系统要求考生输入身份证号码来查询各门课的考试成绩,它通过以下SQL语 句从数据库查询记录:sql=nselect * from score where id =+ user_id + 其中:user_id表示身份证号,score是存放成绩的数据库表。请问攻击者该如何实施SQL注入攻击以绕过后台的身份证号码验证?答:攻击者可以这样构造输入字符串以绕过后台的身份证号码验证:100 or 1=1这样,构造的查询命令就是select * from score where id = 100 or 1=1由于id = 300, or 1=1永远为真,所以数据库查询记录会返回score数据库中所有用户的 记录信息。5 .请简述SQL注入攻击的基本原理及如何防范SQL注入攻击。答:SQL注入攻击的本质是利用Web应用程序中所输入的SQL语句的语法处理,针对的是 Web应用程序开发者编程过程中未对SQL语句传入的参数做出严格的检查和处理所造 成的。攻击者通过在应用程序中预先定义好的查询语句结尾加上额外的SQL语句元素, 欺骗数据库服务器执行非授权的数据库操作。防范SQL注入攻击的方法一般有:验证用户输入、使用存储过程和相应的参数传递、数 据库访问帐号的最小化权限。 按要求回答问题(第一题5分,后两题每题10分,共25分).对于变量声明语句:intx=l;假设一个int型变量占用四个字节,保存x的内存起始地址是0x12345678,请写出x的值 按“大端”方式在内存中的存放形式。十六进制01答: 地址二进制0x12345678000000010x1234567900000000000X1234567A00000000000X1234567B0000000000.请写出下列程序的运行结果#include void main() int bytes_formatted=0;char buffer28=59ABCDEFGHIJKLMNOPQRSTUVWXYZ;printf(20x%n”, buffer, &bytes_formatted);printf(unThe number of bytes formatted in the previous printf statementwas %dn,bytes_formatted);假设buffer的内存地址为0x0012ff60答:0000000000000012ff60The number of bytes formatted in the previous printf statement was 20.请阅读下列程序,并回答问题:#include void main()(int numl=l;char buf a, a, a, a, 0, 0, 0 0;int num2=2;printf(n%x, %s, %xnn);)(1)画出main函数在执行printf(%x, %s, %xn);语句时的系统堆栈分布。假设常量%x, %s, %xn”保存在堆里,不保存在系统栈里。(2) printf(n%x, %s, %xn);中,第一个x输出的是哪个变量的值,第二个输出的是从哪个地址开始的字符串内容,第三个x输出又是哪个地址里的数值。 答:*w局部变量前栈帧的EBP地址返,CCC第一个参数Iccc第二个参数kxx4局部变量ZZ局部变,yy局部变量EBP前栈帧的aaa栈帧 地址返回aaa栈帧bbb第一1个参数xaaa栈帧bbb第二个参数yaaa栈帧X局部变量b局部变量按要求回答问题(每题10分,共30分)1.对于如下存在缓冲区漏洞的代码:#include void main()double no;char name12;int age;gets(name);现在对这段代码实施缓冲区溢出攻击,使main函数返回时转去执行地址0x414141,请问该如何设计输入字符串,结合main函数的系统堆栈加以说明。假设整型变量占四个字节,浮点点型变量占八个字节。2 .对于以下具有缓冲区溢出漏洞的代码,请结合给出的shellcode代码,设计完整的缓冲区溢出攻击代码。十六进制的 shellcode 代码:x31 xd2 x52 x68 x2f x2f x73 x68 xcd x80设计要求:shellcode的植入位置位于函数返回地址之后。即采用NNNNN.NNRSSS.SS 的设计方式。假设jmp esp的地址是0x123456。#include #include void test(char buff)int x;/x占4字节double y;/y 占 8 字节char testbuf12;strcpy(testbuf,buff);void main() (char buff1024;gets(buff);test(buff);3 .对于如下存在格式化字符串漏洞的程序 void main()( char str24=n”;str中保存的是攻击字符串printf(str);(1)画出main函数在执行printf(str);语句时的系统堆栈分布图(包括:main函数的完 整的系统栈结构,printf函数的部分栈结构);(4分)(2)如果需要获得从内存地址0x61626364处开始的内容,请问该如何构造str格式化字 符串? (4分)(3)如果需要获得main函数的返回地址,请问该如何构造str格式化字符串? (2分)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!