1、flag明文
直接搜索flag即可
2、flag编码(有多种编码,可以用脚本跑)
flag的16进制编码:666C6167
运行命令:py -2 C:\Desktop\large-set-of-ctf-flow-problems-master\1-20\02.flag编码\2.flag编码\flag_cz1.1.py 搜索结果会放在同目录下的output.txt文件中
#Python2 的脚本
# encoding:utf-8
import os
import os.path
import sys
import subprocess
#打印可打印字符串
def str_re(str1):
str2=""
for i in str1.decode('utf8','ignore'):
try:
#print(ord(i))
if ord(i) <= 126 and ord(i) >= 33:
str2 += i
except:
str2 += ""
#print(str2)
return str2
#写入文本函数
def txt_wt(name,txt1):
with open("output.txt","a") as f:
f.write('filename:'+name)
f.write("\n")
f.write('flag:'+txt1)
f.write("\n")
#第一次运行,清空output文件
def clear_txt():
with open("output.txt","w") as f:
print "clear output.txt!!!"
# 递归遍历的所有文件
def file_bianli():
# 路径设置为当前目录
path = os.getcwd()
# 返回文件下的所有文件列表
file_list = []
for i, j, k in os.walk(path):
for dd in k:
if ".py" not in dd and "output.txt" not in dd:
file_list.append(os.path.join(i, dd))
return file_list
#查找文件中可能为flag的字符串
def flag(file_list,flag):
for i in file_list:
try:
with open(i,"rb") as f:
for j in f.readlines():
j1=str_re(j)#可打印字符串
#print j1
for k in flag:
if k in j1:
txt_wt(i, j1)
print 'filename:',i
print 'flag:',j1
except:
print 'err'
flag_txt = ['flag{', '666c6167','flag','Zmxh','f', '666C6167']
#清空输出的文本文件
clear_txt()
#遍历文件名
file_lt=file_bianli()
#查找flag关键字
flag(file_lt,flag_txt)
3、压缩包流量
flag存放在 zip rar tar.gz 7z 里
4、菜刀流量
找返回包中一大串的数据,并根据标志位判断文件类型
如果是加密了的压缩包,看看是不是伪加密
5、不可打印字符——telnet
在追踪TCP流以后,要用Hex转储显示数据 对照Ascill码的值确定不可打印字符的含义(可能是退格)
6、蓝牙(OBEX)协议
在统计的协议分级中选中OBEX协议
然后查找pin的分组详情,获得压缩包的密码
7、键盘鼠标流量
执行脚本
py -3 C:\Desktop\large-set-of-ctf-flow-problems-master\1-20\09.USB-键盘流量\sniff(wireshark3.0).py
8、无线流量
在kali中用弱口令密码爆破出WIFI密码
执行命令:aircrack-ng ctf.pcap -w rockyou.txt
执行命令解码:airdecap-ng -p password1 ctf.pcap -e ctf -o 1.pcap
然后打开解码后的文件,查找flag
9、sll流量
在编辑——首选项——协议——TLS中加载密钥log文件
然后再过滤http协议查找flag
10、菜刀流量
在TCP和HTTP协议中寻找线索
11、工业协议分析
将流量按长度降序排列,然后在各层寻找线索,
显示分组字节,从base64,后开始,然后解码看文件类型,最后显示成该类型