点击此处获得更好的阅读体验
WriteUp来源
来自bad_cat
战队
题目描述
查看附件以获取flag
提示信息
无
题目考点
流量分析
Modbus协议
解题思路
过滤出modbus协议的流量,发现其中除了读取Holding 寄存器之外,就是写多个寄存器,吧所有写入包过滤出来
之后进行查看,只有写多个寄存器时是写入了数据的,进一步把Write Multiple Register
过滤
发现每个数据包写入了两个字节,但其实写入的内容大部分都是在0-127,而且是写入了不同位置的寄存器
首先将上述条件过滤后的数据包分组另存为modbus.pcap,之后写脚本把这部分提取出来
1 | import pyshark |
之后得到结果
1 | {"101": "\u009f", "102": "+", "56": "r", "103": "\u00c1", "104": "K", "51": "\u00b3", "105": "N", "106": "+", "107": "c", "80": "v", "108": "\u0081", "109": "\u0082", "66": "t", "19": "\u00ab", "110": "l", "111": "Y", "112": "\u009e", "113": "-", "81": "?", "114": "\u00b6", "115": "\u00c2", "116": "\u008f", "46": "\u00c2", "117": "M", "118": "K", "59": "O", "119": "_", "20": "e", "120": "\u0083", "53": "p", "121": "f", "122": "l", "123": "a", "24": "\u0096", "124": "g", "125": "{", "126": "y", "127": "o", "128": "u", "3": "r", "129": "_", "130": "c", "131": "a", "14": "d", "132": "n", "133": "t", "134": "_", "135": "f", "136": "i", "65": "(", "137": "g", "138": "h", "139": "t", "74": "b", "41": "p", "140": "_", "141": "f", "87": "f", "142": "a", "78": "V", "143": "t", "4": "\u0096", "144": "e", "145": "}", "77": "r", "146": "K", "147": "\u00b0", "148": "\u009b", "55": "v", "149": "\u00a8", "28": "g", "70": "e", "150": "M", "151": "f", "152": "T", "153": "R", "154": "\u0095", "155": "M", "76": "g", "156": "\u0088", "157": "\u00b1", "158": ";", "54": "w", "159": "I", "22": "*", "38": "f", "160": "k", "95": "f", "79": "r", "161": "\u007f", "162": "\u00b9", "163": "\u0091", "36": "w", "85": "s", "164": "\u0087", "165": "|", "57": "\u00a7", "17": "w", "18": "t", "9": "r", "27": "b", "90": "g", "67": "t", "69": "Q", "61": "\u00ba", "26": ".", "35": "\u007f", "39": "\u009f", "25": "m", "83": "\u0094", "2": "\u0083", "43": "\u008c", "48": "k", "60": "\u0097", "75": "\u00ac"} |
之后进行排序,很容易就可以发现flag
Flag
1 | flag{you_cant_fight_fate} |