阅读 269

RST复位攻击原理与实战(rs触发器复位是什么意思)

RST是什么

RST即reset(复位),与我们常见的SYN、ACK等常见TCP报文一样,目的是为了标记TCP连接中的各种状态;而RST即是为了处理TCP连接中的异常连接而设计出来的。当发送端发送RST关闭连接时,会直接丢弃缓冲区中的数据,连接释放进入CLOSED状态。而接收端收到RST段后,也无需发送ACK确认。

RST触发的常见情况

  1. 端口未监听(尝试三次握手建立连接) 当服务端进程未启动或被系统关闭后,当客户端尝试建立新连接时,服务端都会返回"Connection Reset"等错误信息用来表示这种状态。

  2. 一方突然断开,无法通过四次挥手通知另一方正常断开连接(建立连接中,直接拔网线) 在经过三次握手建立连接后,如果一方直接退出,当另一方试图连接时发现无法连接后,会直接收到RST的回复,终止此次连接。

  3. SO_LINGER设置丢弃缓冲区数据,立刻RST(通过方法设置) 通过设置SO_LINGER为true,linger设置为0后,当调用socket.close()方法时,close函数会立即返回并丢失缓冲区数据,发送RST包重置此次连接。

  4. RST攻击 指第三方通过获取通讯双方的IP、端口号(即连接的四元组:请求方IP、请求方端口、发送方IP、发送方端口号)后 通过模拟请求RST来中断原本通讯正常的双方。

  5. 在抓包过程中观察出,如果设置长连接后,由于Nginx中的长连接等待时长为65S,如果此时客户端(也就是请求端)不主动发送数据,服务端也会主动发送RST来断开请求来达到节省开销的目的。

如果RST包发送失败/丢失后,TCP会如何处理

如果服务端发送的RST包在途中丢失后,由于客户端并未收到返回的状态,等到有数据需要发送时,仍然会发送给客户端。客户端在收到后,将会再次发送RST包给客户端,如果客户端还是没有收到,会在一定次数后放弃并自己重置状态为CLOSED。


作者:__十七
链接:https://juejin.cn/post/7038995609579159565


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐