某塔的線上比賽平台,最後一道一堆蜜罐,聽說沒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...