2012-03-19 82 views

回答

2

shellcode中空字节的问题仅适用于在使用C标准字符串库的字符串处理中使用溢出注入的情况,其中空字节表示字符串结束,因此复制应停止。利用C风格的字符串开发缓冲区溢出是90年代中期最流行的shellcode注入方法。目前,大多数C代码使用其他函数(OpenBSD strlcpy/strlcat set,* _s()set,或本地生成的函数)来保护(AFAIK),并且C++已经获得了没有空字节的字符串库终止。目前,大多数漏洞使用一些编程错误,因为它们的缓冲区太小,或者在某些边界之间发生传入值错误检查。

我没有分析你链接的代码,但似乎它使用不正确的二进制数据中的TLV处理。无论如何,由于二进制数据处理(但以另一种方式可以利用),它是无效的。

1

这些使用空指针在环境变量....探索!