如果我编写了一个打开TCP端口并运行的程序,比如回送服务器,那么有人能做什么呢?有人能访问我的系统上的数据吗?或者其他开放港口的风险?
发布于 2012-05-16 08:55:50
这取决于程序编写得有多好,以及您的服务器程序在何种凭据下运行。例如,如果您分配了一个固定长度的缓冲区从套接字读取,然后读取的大小超过分配的大小,则可能会创建一个服务器请求,该请求会溢出堆栈上的缓冲区并覆盖返回地址。此时,黑客可以将返回地址重新指向缓冲区(溢出),该缓冲区可能包含实际代码。然后,如果您的服务器程序以root/管理员的身份运行,则允许在该上下文中执行代码。
发布于 2012-05-16 09:09:07
如果您的程序易受攻击,黑客可能会以您的程序权限在您的系统上执行代码。或者他可以安排一次DoS攻击(您的程序会消耗所有的CPU、内存或磁盘空间,所有的东西都会停止工作和崩溃:-)。
在过去,还可以在OS TCP/IP堆栈中发现一个漏洞并加以利用。因此,即使您的程序是完美的,也有可能在开放端口方面陷入麻烦。然而,我已经有一段时间没有听说过这样的bug了。
https://serverfault.com/questions/389534
复制相似问题