漏洞12255(缓冲区溢出)、12261(缓冲区溢出)、12258(DoS)

TCP 紧急指针 RCE 漏洞

TL;DR
TCP 有一种深奥的机制来传输名为紧急数据的 OOB 数据。 通过利用这种机制,攻击者可以使传递给 recv() 系统调用的长度变量即recv() 的一个参数发生下溢,这将导致传递给 recv() 系统调用的缓冲区产生攻击者可控的溢出。 这可能导致在栈、堆或全局数据部分中分配的缓冲区溢出,从而导致远程代码执行。

背景知识1 - TCP
TCP 是一种传输层协议,是面向字节流的,允许在不可靠的 IP 层上传输有序的字节流,作为 TCP 会话的一部分通过 IP 层传送的每个数据单元是称为报文段,一个 TCP 报文段分为首部和数据两部分,TCP 的全部功能体现在其首部中各字段的作用。
在这里插入图片描述
各字段作用的详细介绍请参考:计算机网络-谢希仁第七版-P217
根据其源/目标 IP 和源/目标端口的 4 元组,每个 TCP 报文段都被视为特定 TCP 会话的一部分。
TCP 窗口与缓存的关系请参考:计算机网络-谢希仁第七版-P223
每个端点的 TCP/IP 堆栈都拥有一个称为 TCP Window 的缓冲区,其中包含作为会话的一部分接收到但尚未由套接字用户处理的所有数据。当用户在套接字上调用 recv() 系统调用时,数据会从 TCP 窗口缓冲区中提取出来。有新的(非重复的)TCP 段到达时,就会把数据插入到该缓冲区。
TCP 可靠有序传输的实现请参考:计算机网络-谢希仁第七版-P223

背景知识2 - TCP 紧急数据(OOB)说明
TCP的一个鲜为人知的功能是可以通过现有的 TCP 连接发送和接收紧急数据(OOB)。此功能旨在解决类似以下情况出现的问题:

  • 客户端通过 TCP 连接异步的向服务器发送指令。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pekingkenny

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值