- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
缓冲区溢出攻击原理——内存模型 在应用程序的一次动态执行过程中,内存分为三部分:文本区、数据区和堆栈区。 堆栈区 数据区 文本区 内存高址 内存低址 内存增长方向 由程序确定,包括代码和只读数据,该区域标记为只读 存放全局的、静态的数据,程序编译时分配 存放动态的数据,以及用于函数调用、返回等。 函数调用时缓冲区模型 程序运行时,操作系统会分配每个进程独立的地址空间,包括代码区、数据区和堆栈区。 缓冲区溢出攻击就是利用动态的堆栈区内容进行操作达到攻击的目的。 C程序中,每当调用函数时就会自动处理堆栈分配。 堆栈作用:保存有关当前函数调用上下文信息的容器。 被调用函数所需的参数入栈 指令寄存器EIP内容(指向下一条将要被执行的指令)入栈,作为函数返回的地址。 堆栈的基址寄存器EBP内容(指向当前堆栈底部)入栈 预留出函数的动态局部变量值空间 当实际输入局部变量的值长度超出缓冲区长度,而程序中又缺乏边界检查机制时,数据就会继续向栈底写入,导致栈中旧的数据被覆盖。 只要在程序运行时传送给它一个足够大的参数,就可以在返回地址中填入一个希望程序转到的任意内存地址,从而控制程序的运行权。 实际操作中存在两个问题: 攻击代码植入目标程序地址空间 改写返回地址为攻击代码地址以获得程序控制权 常见的缓冲区溢出攻击都是一次完成攻击代码植入和程序转向攻击代码两种功能。 缓冲区溢出攻击原理 缓冲区溢出攻击的步骤 放入预先安排的代码:为了使缓冲区溢出后截获程序的执行权限,攻击者需要预先在系统中安置代码,可以安置在数据段和堆栈段中,也可以使用已经存在的系统调用程序。 发现并利用缓冲区溢出:攻击者用其掌握的程序向有缓冲区溢出漏洞的程序输入一个超长的数据,造成缓冲区结构的破坏。数据包括对返回地址的修改数据,因此被攻击的程序将返回到攻击者希望的地址中。 执行预先安排的代码:在指令指针指向攻击者预先安排的代码时,这段代码开始执行,它具有和被攻击程序相同的权限 例子 #include stdio.h #include string.h void Sayhello(char* name) { char tmpName [8]; strcpy(tmpName, name); printf(Hello %s\n, tmpName); } int main(int argc, char** argv) { Sayhello(argv[1]); return 0; } 下面内容是在Linux环境下example.c程序的执行情况: $ ./ example computer Hello computer $ ./ example computerssssssss Hello computerssssssss Segmentation fault (core dumped) 分析 6.4 诱骗类威胁 诱骗类威胁是指攻击者利用社会工程学的思想,利用人的弱点(如人的本能反应、好奇心、信任、贪便宜等)通过网络散布虚假信息,诱使受害者上当受骗,而达到攻击者目的的一种网络攻击行为。 准确地说,社会工程学不是一门科学,而是一门艺术和窍门,它利用人的弱点,以顺从你的意愿、满足你的欲望的方式,让你受骗上当。 6.4.1 网络钓鱼 Phishing是英单词Fishing(钓鱼)和Phone(电话,因为黑客起初以电话作案)的综合体,所以被称为网络钓鱼。 Phishing是指攻击者通过伪造以假乱真的网站和发送诱惑受害者按攻击者意图执行某些操作的电子邮件等方法,使得受害者“自愿”交出重要信息(例如银行账户和密码)的手段。 电子邮件诱骗 电子邮件服务是合法的Internet经典服务,攻击者进行电子邮件诱骗,一般需要经过以下几个步骤。 第一步 选定目标用户群。 第二步 构造欺骗性电子邮件。 第三步 搭建欺骗性网站。 第四步 群发邮件,等待上当的受害者。 假冒网站 建立假冒网站,骗取用户帐号、密码实施盗窃,这是对用户造成经济损失最大的恶劣手段。 为了迷惑用户,攻击者有意把网站域名注册成与真实机构的域名很相似, 网址为“”,而真正 银行网站是“” 虚假的电子商务 攻击者建立电子商务网站,或是在比较知名、大型电子商务网站上发布虚假的商品销售信息。 网上交易多是异地交易,通常需要汇款。 不法分子一般要求消费者先付部分款,再以各种理 由诱骗消费者付余款或者其他各种名目的款项,得 到钱款或被识破时,犯罪分子就销声匿迹。 6.4.2 对于诱骗类威胁的防范 诱骗类威胁不属于传统信息安全的范畴,传统信息安全办法解决不了非传统信息安全的威胁。 一般认为,解决非传统信息安全威胁需要运用社会工程学来反制。 防范诱骗类威胁的首要方法是加强安全防范意识,多问“为什么”,减少 “天上掉馅饼”的心
文档评论(0)