Blu*_*Ice 2 terminal port protocol
QOTD(“每日报价”)是一种默认情况下可以在端口 17 上在服务器上打开的协议。在端口 17 上,可以使用 QOTD 返回报价。
事实上,如果 QOTD 服务器可以处理大量文本并且不容易受到“乒乓”攻击,那么它可以用作以 bash 可读形式显示和发送数据的实用方式。维基百科-QOTD
这种攻击由qotd服务器对来自另一台计算机的请求发送回复组成,当请求过多时,服务器会崩溃(简单的DoS攻击)
这是 QOTD 服务器的示例(在 mac 或 linux 机器上的终端中运行它)
nc shairosenfeld.com 17
Run Code Online (Sandbox Code Playgroud)
有没有办法制作一种 QOTD 类型的服务器,其中请求可以限制在每分钟的数量上,或者是否可以禁止垃圾邮件发送者的回复(例如 ssh 的拒绝主机)?有没有人有 linux 的例子,因为我没有看运气。
编写 QOTD 应用程序似乎很简单。我不是 Python 程序员,但概念验证服务器将是:
#!/usr/bin/python 从套接字导入 * 我的主机 = '' 我的端口 = 17 s = socket(AF_INET, SOCK_STREAM) # 创建一个 TCP 套接字 s.bind ( (myHost, myPort) ) s.听 (5) 而 1: 连接,地址 = s.accept() connection.send("echo Hello World\n") 连接.close()
(当然,需要以 root 身份运行 - 因为端口小于 1024)
然后,您可以对 IPTABLES 进行一些限制以限制连接数 - 类似于:
/sbin/iptables -A INPUT -p tcp --syn --dport 17 -m connlimit --connlimit-above 3 -j REJECT
(有关iptables 连接限制的更多选项,请参见此处)
小智 5
如果你安装了 netcat 和 Fortune,那么创建一个命令行 QOTD 服务器是微不足道的:
# nc -lk -p 17 -e fortune
Run Code Online (Sandbox Code Playgroud)
某些版本的 netcat 可能没有启用 -e,在这种情况下使用 busybox 版本,它会:
# busybox nc -lk -p 17 -e fortune
Run Code Online (Sandbox Code Playgroud)