記某工控CTF比賽一道ICMP隧道題

2021-09-26 05:39:10 字數 1415 閱讀 7191

某塔的線上比賽平台,最後一道一堆蜜罐,聽說沒flag,反正沒找到。然後看一下其中一道icmp隧道的題目。

資料報如圖:

當時的考量:

響應包有的,請求包也有,並且都一樣,所以請求包的資料是最全的,可以不看響應包。

考慮到填充不符合正常的icmp請求應答的填充方式,也嘗試了對資料進行解密,但都無果。

兩個通訊ip沒有什麼有用資訊。

考慮過包長度轉ascii字元的這個問題,但是看到整個包的長度超過了127,覺得不太可能就放棄了。後來實在找不出來,看了下icmp包頭長度,然後明白了可能只是資料長度。

以下是解題指令碼:

#!/usr/bin/python

# coding=utf8

# @author:b1u3buf4

import pyshark

import base64

l_flag=

packets = pyshark.filecapture('***.pcap')

for packet in packets:

for pkt in packet:

if pkt.layer_name == "icmp":

if int(pkt.type) != 0:

print(base64.b64decode(''.join([chr(c) for c in l_flag])))

有老哥吐槽說這題太腦洞了,誰能構造這樣的流量也是夠煞費苦心了。沒有直接的文字特徵,識別起來比較麻煩的,確實有一定的隱蔽性,但是作隧道可能通訊效率太低了。然後無聊就寫了乙個構造這樣發包的。

#!/usr/bin/python

# coding=utf8

# @author:b1u3buf4

import string

import time

import random

from scapy.all import *

def icmp_tunnel_sender(dip, words):

i = 0

dic = string.ascii_lowercase

for char in words:

length = ord(char)

data = ''.join([dic[i % 26] for i in range(length)])

p = ip(dst=dip)/icmp(type=8, code=0, id=1, seq=i)/data

send(p)

i += 1

time.sleep(random.randint(1, 10)/10)

記一道USB流量分析CTF題

拿到資料報使用wireshark開啟後看到protocol 為usb協議,搜到了一篇關於usb流量分析的文章 貼鏈結 從ctf中學usb流量捕獲與解析 鍵盤資料報的資料長度為8個位元組,擊鍵資訊集中在第3個位元組,每次key stroke都會產生乙個keyboard event usb packet...

希爾密碼在CTF中應用 記一道題

解題思路來自 i春秋的大佬們 希爾密碼是一種與矩陣相關的替換密碼,只涉及基本的矩陣原理。說起來還是挺簡單的。a z對應0 25,用作加密的矩陣 即金鑰 必須是可逆的,否則就不可能解碼。只有矩陣的行列式和26互質,才是可逆的。將數字寫成與金鑰相同或者是題目提示的形式,與金鑰相乘得到密文,等於密文與26...

一道CTF題 sql爆破

題目 開啟網頁 說明存在sql注入。嘗試了一些常見的繞過操作都不行,過濾了注釋 空格,and,select等。嘗試用 11 繞過 頁面正常 頁面正常 頁面正常 報錯 以上測試說明表有四列。測試回顯 union也可以大寫 返回3,說明在第3個位置可控。爆資料庫 得到資料庫test。爆表名 出現表名 c...