• ev3_basic——HITCON CTF 2018


    [MISC]


    EN-US

    This challenge provides a jpg file and a pklg file. The jpg is shown a part of string on LEGO EV3 device. Length of the string, I guess, might be 58. EV3 is supported USB or Bluetooth connection. Bluetooth connection is hinted in the pklg file opened with Wireshark. Transmission is wored between two RFCOMM protocol entities. There are two types in all RFCOMM packages. Much attention should be focused on "Sent", while the "Rcvd" packages are botrh same like each other.

    There are three different length of packages: 32, 33, 34. After analysising, I notice three key position, shown below (I called them in turn as: Order in group, Group number, Data):

    if length == 32:

          Order in group        0x81  Group number  0x84  Data
    

    if length == 33:

    0x81  Order in group        0x81  Group number  0x84  Data
    

    if length == 34:

    0x82  Order in group  0x00  0x81  Group number  0x84  Data
    

    Sort them by Group number at first. If equal, sorted by Order in group

    h,b0017 2711 0a 28 68
    i,b0017 2711 14 28 69
    t,b0017 2711 1e 28 74
    c,c0018 2912 28 28 63
    o,c0018 2912 32 28 6f
    n,c0018 2912 3c 28 6e
    {,c0018 2912 46 28 7b
    m,c0018 2912 50 28 6d
    1,c0018 2912 5a 28 31
    n,c0018 2912 64 28 6e
    d,c0018 2912 6e 28 64 
    5,c0018 2912 78 28 35 
    t,d0019 2b13 82 28 74
    0,d0019 2b13 8c 28 30 
    r,d0019 2b13 96 28 72
    m,d0019 2b13 a0 28 6d 
    
    _,b0017 2711 0a 36 5f
    c,b0017 2711 14 36 63 
    o,b0017 2711 1e 36 6f
    m,c0018 2912 28 36 6d
    m,c0018 2912 32 36 6d 
    u,c0018 2912 3c 36 75
    n,c0018 2912 46 36 6e
    i,c0018 2912 50 36 69
    c,c0018 2912 5a 36 63
    a,c0018 2912 64 36 61
    t,c0018 2912 6e 36 74
    i,c0018 2912 78 36 69
    o,d0019 2b13 82 36 6f
    n,d0019 2b13 8c 36 6e
    _,d0019 2b13 96 36 5f 
    a,d0019 2b13 a0 36 61
    
    n,b0017 2711 0a 44 6e
    d,b0017 2711 14 44 64
    _,b0017 2711 1e 44 5f 
    f,c0018 2912 28 44 66
    i,c0018 2912 32 44 69
    r,c0018 2912 3c 44 72 
    m,c0018 2912 46 44 6d
    w,c0018 2912 50 44 77
    a,c0018 2912 5a 44 61
    r,c0018 2912 64 44 72
    e,c0018 2912 6e 44 65
    _,c0018 2912 78 44 5f 
    d,d0019 2b13 82 44 64
    e,d0019 2b13 8c 44 65 
    v,d0019 2b13 96 44 76 
    e,d0019 2b13 a0 44 65
    
    l,b0017 2711 0a 52 6c
    o,b0017 2711 14 52 6f
    p,b0017 2711 1e 52 70
    e,c0018 2912 28 52 65
    r,c0018 2912 32 52 72
    _,c0018 2912 3c 52 5f
    k,c0018 2912 46 52 6b
    i,c0018 2912 50 52 69
    t,c0018 2912 5a 52 74
    },c0018 2912 64 52 7d
    

    ZH-CN

    题目给了一个图片和一个流量包。

    图片给了一个乐高LEGO EV3设备。屏幕上有"hitcon{"开头的字样,中间有单独字符和间隔,看来是关键是要找字符了。顺带根据间隔的位置,大致数出来每行可能有16个字符,最后一行是10个字符,一共是58个。查了一下这个设备,支持USB、蓝牙等方式连接,然后再流量包里也看到被wireshark识别出来的HCI和RFCOMM。数量最多的那种包可能只是一个调试器日志。其他信息,可以看到出题人是用mac下的python连接的,不过这没什么用。

    简单介绍一下这几个协议的关系。

    所以基本确定了数据在RFCOMM协议中。基本为两种包,一种是发送,另一个是接受确认。接受确认基本都一样,很短,辨识度很高,所以不会有信息。就剩下sent发送包。然后就找到了"{"和"}",信息在send里,基本就坐实了。

    send分为三种长度,分别是32,33,34。
    三种数据包的如下

    圈出来三者的含义我姑且定义为分别表示了组内序号,组号,字符:

    变化的部分有价值的主要是组内序号的部分
    32的:直接是组内讯号
    33的:组内序号前加了0x81
    34的:组内序号前加了0x82,序号后加了0x00

    摘出来数据后排序即可。至此解出。下附结果

    h,b0017 2711 0a 28 68
    i,b0017 2711 14 28 69
    t,b0017 2711 1e 28 74
    c,c0018 2912 28 28 63
    o,c0018 2912 32 28 6f
    n,c0018 2912 3c 28 6e
    {,c0018 2912 46 28 7b
    m,c0018 2912 50 28 6d
    1,c0018 2912 5a 28 31
    n,c0018 2912 64 28 6e
    d,c0018 2912 6e 28 64 
    5,c0018 2912 78 28 35 
    t,d0019 2b13 82 28 74
    0,d0019 2b13 8c 28 30 
    r,d0019 2b13 96 28 72
    m,d0019 2b13 a0 28 6d 
    
    _,b0017 2711 0a 36 5f
    c,b0017 2711 14 36 63 
    o,b0017 2711 1e 36 6f
    m,c0018 2912 28 36 6d
    m,c0018 2912 32 36 6d 
    u,c0018 2912 3c 36 75
    n,c0018 2912 46 36 6e
    i,c0018 2912 50 36 69
    c,c0018 2912 5a 36 63
    a,c0018 2912 64 36 61
    t,c0018 2912 6e 36 74
    i,c0018 2912 78 36 69
    o,d0019 2b13 82 36 6f
    n,d0019 2b13 8c 36 6e
    _,d0019 2b13 96 36 5f 
    a,d0019 2b13 a0 36 61
    
    n,b0017 2711 0a 44 6e
    d,b0017 2711 14 44 64
    _,b0017 2711 1e 44 5f 
    f,c0018 2912 28 44 66
    i,c0018 2912 32 44 69
    r,c0018 2912 3c 44 72 
    m,c0018 2912 46 44 6d
    w,c0018 2912 50 44 77
    a,c0018 2912 5a 44 61
    r,c0018 2912 64 44 72
    e,c0018 2912 6e 44 65
    _,c0018 2912 78 44 5f 
    d,d0019 2b13 82 44 64
    e,d0019 2b13 8c 44 65 
    v,d0019 2b13 96 44 76 
    e,d0019 2b13 a0 44 65
    
    l,b0017 2711 0a 52 6c
    o,b0017 2711 14 52 6f
    p,b0017 2711 1e 52 70
    e,c0018 2912 28 52 65
    r,c0018 2912 32 52 72
    _,c0018 2912 3c 52 5f
    k,c0018 2912 46 52 6b
    i,c0018 2912 50 52 69
    t,c0018 2912 5a 52 74
    },c0018 2912 64 52 7d
  • 相关阅读:
    “敏捷版”全链路压测
    不改一行代码,轻松拥有企业级微服务治理|MSE微服务治理专业版重磅发布
    和 VMware、深信服、天翼云、招商云专家一起聊聊云原生边缘计算
    阿里大规模业务混部下的全链路资源隔离技术演进
    Serverless 下的微服务实践
    阿里云发布云原生加速器,携手生态企业拥抱数字时代
    LifseaOS 悄然来袭,一款为云原生而生的 OS
    12.04 深圳站 | Serverless Developer Meetup 开放报名啦!
    Kubernetes 已经成为云原生时代的安卓,这就够了吗?
    阿里云发布云原生加速器,携手生态企业拥抱数字时代
  • 原文地址:https://www.cnblogs.com/xiao3c/p/9829168.html
Copyright © 2020-2023  润新知