不安全的无线协议

点击此处获得更好的阅读体验


WriteUp来源

来自MO1N战队

题目描述

某工控环境中使用了不安全的无线协议,安全人员捕获到相关无线信号,请分析名为POC的附件。flag格式为:flag{}。

题目考点

  • 流量分析

  • Pocsag协议

解题思路

Pocsag协议正相地址码为1234567

对pocsag编码进行解密,对照信息码字结构

使用urh对无线信号进行解析

可以看到前置码、sc、0为576+32+64位而1由位编号、地址码字、信息码字、在这里只需要将信息码字解析即可。

同步码字的16进制表示为(7CD215D8),

空闲码字的16进制表示为(7A89C197)。

在地址码字中

  • 第1位为0

  • 第2~19位为地址

  • 20和21位为状态

  • 22~31位为BCH校验

  • 第32位为奇偶校验

在信息码字中

  • 第1位为1

  • 第2~21位为信息

  • 22~31位为BCH校验

  • 第32位为奇偶校验

1
2
3
4
5
00110110 00110110 00110110 01100011 00110110 00110001
00110110 00110111 00110111 01100010 00110100 00110010
00110110 00110001 00110110 00110100 00110110 01100100
00110011 00110000 00110011 00110000 00110110 00110100
00110111 01100100

共208=26*8位

而每一个信息码字里面可以传输20位,则需要3个信息码字方能将数据传输完整:

0 1-20 21-30 31
码字1 1 0011 0110 0011 0110 0011 BCH(31,21)值 奇偶校验位
码字2 1 0110 0110 0011 0011 0110 BCH(31,21)值 奇偶校验位
码字3 1 0011 0001 0011 0110 0011 BCH(31,21)值 奇偶校验位

在数据传输过程中,如果没有发生错误的话,我们应该接收到的内容应该是:

1010  1001  1010  0000  1010  0100  1111  1001 数据 (1)

将接收到的数据(1)与矩阵H进行乘法运算可以得到新矩阵R,称R为伴随式。R = D * H

其中 D为数据(1)前31位的1行31列矩阵——奇偶校验位不参加运算 , H为BCH(31,21)一致校验矩阵的转置矩阵

矩阵的转置矩阵等于原矩阵的行列元素相互交换,如果交换前矩阵元素为MN,则转置后矩阵为NM,示例如下:

BCH(31,21)一致校验矩阵为10行31列,则它的转置矩阵H为31行10列,D为1行31列。R=D*H,则R为1行10列的矩阵。

矩阵乘法示例:

得到R后,我们就可以根据R矩阵来判断具体是哪一位或者哪二位出现的错误,错误的可能只是由1错为0或者相反,发现错误位后直接反转即可纠错。

由前面内容可以知道数据(1)是没有发生错误的,其伴随式R中的所有元素均为0,现将数据(1)第2位反转得到数据(2):

1110  1001  1010  0000  1010  0100  1111  1001 数据 (2)

R2 = D2 *H,对数据(2)进行译码的结果为:0 1 1 1 0 1 1 0 1 0。可见结果与图3中的第二列一模一样,则可以数据(2)的第二位发生了错误,将其反转纠错。

发送的数据为:

1
0011011000110110001101100110001100110110001100010011011000110111001101110110001000110100001100100011011000110001001101100011010000110110011001000011001100110000001100110011000000110110001101000011011101100100

16进制转换成字符串得到:666c61677b4261646d3030647d,再进行16进制转换字符串得到flag

Flag

1
flag{Badm00d}