我写了一个客户端,它从键盘获取输入并将其存储在变量中,如下所示:
x = gets
在C中,通常将内存分配给标准输入,因此如果我将足够的字符写入缓冲区,我可以很容易地溢出缓冲区并覆盖堆栈上的返回地址。
char buffer[10];
gets(buffer);
如何解决Ruby中使用的缓冲区溢出问题?我没有幸运地找到有关如何利用非C语言的程序的信息。我一直在关注一本名为" The Shellcoder's Handbook"有什么资源我可以看一下解释如何利用其他语言编写的程序,特别是在Ruby中?或者,为什么大多数漏洞利用书都是为C语言编写的,因为其他语言会过于先进,这绝对是有原因的吗?
根据观察结果,似乎我可以根据自己的需要提供尽可能多的角色来获取' Ruby中的方法,它不会溢出,使其免受溢出攻击。