第9章ROP攻击第9章ROP攻击9
1ROP攻击的发展9
2ROP攻击的变种9
3思考与练习第9章ROP攻击9
1ROP攻击的发展利用缓冲区溢出漏洞进行攻击变得日益普遍,这是因为缓冲区溢出漏洞具有极大的破坏力和隐蔽性,它可以导致程序运行失败、系统死机或重启
更为严重的是,攻击者可以利用它执行非授权指令,甚至可以取得系统的超级特权,进行各种非法操作
而利用缓冲区溢出漏洞的攻击包括多种类型,其中就包括了注入代码型与代码重用型攻击
由此发展的多种攻击有缓冲区溢出攻击、格式化字符串漏洞攻击、return-into-libc攻击和ROP攻击等
第9章ROP攻击1.缓冲区溢出攻击缓冲区溢出攻击是几种最常见的利用程序缺陷实施攻击的方法之一
缓冲区溢出是指当程序向缓冲区内填充数据时,数据长度超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上
理想的情况是:程序会检查数据长度,不允许输入长度超过缓冲区长度
但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出创造了条件
第9章ROP攻击缓冲区溢出漏洞具有极大的破坏力和隐蔽性
缓冲区溢出攻击的隐蔽性主要表现在:(1)一般程序员很难发觉自己编写的程序中存在缓冲区溢出漏洞,从而疏忽检测;(2)攻击者所发送的溢出字符串在形式上跟普通的字符串几乎无区别,传统的防御工具(如防火墙)不会认为其为非法请求,从而不会进行阻拦;(3)通过缓冲区溢出注入的ShellCode代码执行时间一般较短,在执行中系统不一定报告错误,并且可能不会影响到正常程序的运行;第9章ROP攻击(4)攻击者通过缓冲区溢出改变程序执行流程,使ShellCode代码能够执行本来不被允许或没有权限的操作,而防火墙认为其是合法的;(5)攻击的随机性和不可预测性使得防御攻击变得异常艰难,在没有攻击时,存在漏洞的程序并不会有什么变化(这和木马有着本质的区别),这也是缓冲区溢