欲知问题答案,请访问http://mdsec. net/wahh。
(1)如果不采用特殊的防御措施,为什么栈缓冲区溢出比堆溢出更容易被攻击者利用?
(2)在C与C++语言中,字符串的长度如何决定?
(3)与在因特网上运行的所有权Web应用程序中存在的溢出漏洞相比,非定制网络设备中存在的缓冲区溢出漏洞为什么更可能被攻击者所利用?
(4)下面的模糊漏洞字符串为什么无法确定许多格式化字符串漏洞?
(5)假设在一个大量使用本地代码组件的Web应用程序中探查缓冲区溢出漏洞,发现了某个请求的一个参数可能存在漏洞,然而无法让监控到的反常行为再次发生。有时,提交一个长度较长的值会立即造成系统崩溃,有时则需要重复提交几次才能导致崩溃。另外,如果提交大量“良性”请求也会引起系统崩溃。
什么原因最有可能导致应用程序出现这种行为?
[1] big-endian和little-endian是用来表述一组有序的字节数存放在计算机内存中时的顺序的术语。big-endian是将高位字节(序列中最重要的值)先存放在高地址处的顺序,而little-endian是将低位字节(序列中最不重要的值)先存放在低地址处的顺序。——译者注