流量分析---基础篇
本文相关流量包和工具:https://gitee.com/he-shiqiang03/ctf_file-and-_tools
1.flag明文
通过设置分组字节流和ctrl+f将搜索对象改为字符串 ----->输入flag持续查找,这种明文一般出现在简单题中,如果没有那么可能是将flag编码为其他的形式,比如:16进制编码 或者其他编码(unnicode)
2.flag其他类型编码
flag的16进制编码为:666C6167 将flag->字符型
![CTF[MISC]入门------流量分析(一)_流量分析](https://file.cfanz.cn/uploads/png/2023/10/20/6/6d6SLdW192.png)
其他类型编码: https://www.toolhelper.cn/EncodeDecode/EncodeDecode
懒人方法: 利用已经做好的脚本工具
# 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)将上述代码放到流量包同目录下,进行流量分析,输出一个output.txt,flag明文和非明文搜索都在里面,搜索之后可能会有php等仍然需要进行进一步的解码
3.压缩包
3.1菜刀流量
对于这种压缩包类的,在流量题中肯定是放到了流量包里面,整体的思路去找压缩包,再将压缩包数据导出来,修改后缀再解压。
点开caidao.pcapng 我们查询http,很明显发现text
![CTF[MISC]入门------流量分析(一)_压缩包_02](https://file.cfanz.cn/uploads/png/2023/10/20/6/bH6EX7a5Rb.png)
点击第一个请求,然后右键进行流量跟踪选择tcp,选择查看数据里面发现有个flag.tar.gz压缩包,但是没有找到他的数据。
![CTF[MISC]入门------流量分析(一)_流量分析_03](https://file.cfanz.cn/uploads/png/2023/10/20/6/07Mb968bDA.png)
![CTF[MISC]入门------流量分析(一)_压缩包_04](https://file.cfanz.cn/uploads/png/2023/10/20/6/527268QeJP.png)
点击第二text发现了,如下php代码:
![CTF[MISC]入门------流量分析(一)_数据_05](https://file.cfanz.cn/uploads/png/2023/10/20/6/14X1T32R9d.png)
很明显是上传了一个flag.tar.gz的压缩包,那么如何查找到这个压缩包呢,我们是通过先查找到第一个http,再进行tcp跟踪,查找到第二个流
![CTF[MISC]入门------流量分析(一)_流量分析_06](https://file.cfanz.cn/uploads/png/2023/10/20/6/e32WdDc737.png)
然后找到text/html翻动中间的数据
![CTF[MISC]入门------流量分析(一)_misc_07](https://file.cfanz.cn/uploads/png/2023/10/20/6/8WOYa34337.png)
![CTF[MISC]入门------流量分析(一)_misc_08](https://file.cfanz.cn/uploads/png/2023/10/20/6/4O16XPcVI1.png)
然后在下面开始的位置设置为3,去掉前面的三个标志位,选择解码方式为压缩
![CTF[MISC]入门------流量分析(一)_流量分析_09](https://file.cfanz.cn/uploads/png/2023/10/20/6/d7b83d4C1V.png)
然后就出现flag
![CTF[MISC]入门------流量分析(一)_流量分析_10](https://file.cfanz.cn/uploads/png/2023/10/20/6/Y9Q46Wf36A.png)
key{8769fe393f2b998fa6a11afe2bfcd65e}
3.2 test.pcap
首先查找flag,没有查到flag关键词。
那么接着就是查一下http流
![CTF[MISC]入门------流量分析(一)_数据_11](https://file.cfanz.cn/uploads/png/2023/10/20/6/dB0O0K6JOL.png)
点击第一个http,进行tcp流追踪
![CTF[MISC]入门------流量分析(一)_php_12](https://file.cfanz.cn/uploads/png/2023/10/20/6/2Da4023KVV.png)
第一个流
![CTF[MISC]入门------流量分析(一)_php_13](https://file.cfanz.cn/uploads/png/2023/10/20/6/7f8C5dDcDD.png)
对里面的码进行url解码和base64解码,发现为
Data is not a valid byteArray: [257,1,165,185,165,125...
没啥用,那么就来到第二个流
![CTF[MISC]入门------流量分析(一)_php_14](https://file.cfanz.cn/uploads/png/2023/10/20/6/619L969N6e.png)
这个流能直观的发现是进行了linux指令的操作,ls展示目录,同时发现了x.tar.gz,那么我们就得去找他得数据。那么来到第三个流
![CTF[MISC]入门------流量分析(一)_流量分析_15](https://file.cfanz.cn/uploads/png/2023/10/20/6/b7QY45ba29.png)
这个一样能看到这个php的一句话目马。那么就查找X@Y(标志位)
来到第四个流
![CTF[MISC]入门------流量分析(一)_数据_16](https://file.cfanz.cn/uploads/png/2023/10/20/6/R5T797K30M.png)
发现返回了一些数据,我们点击这个数据进行显示分组字节,进行压缩查看一下是不是有flag
![CTF[MISC]入门------流量分析(一)_misc_17](https://file.cfanz.cn/uploads/png/2023/10/20/6/Y85KC0I6U6.png)
![CTF[MISC]入门------流量分析(一)_压缩包_18](https://file.cfanz.cn/uploads/png/2023/10/20/6/fN0PBb6ffS.png)
现在发现了前后都有->|的标识位,那么我们就要进行如下设置。
![CTF[MISC]入门------流量分析(一)_misc_19](https://file.cfanz.cn/uploads/png/2023/10/20/6/30UC119670.png)
![CTF[MISC]入门------流量分析(一)_php_20](https://file.cfanz.cn/uploads/png/2023/10/20/6/2cc8e40671.png)
最后flag出现了
flag为ISG{China_Ch0pper_Is_A_Slick_Little_Webshe11}
4.菜刀流量-压缩包
点击liuliang.pcap,先初步进行预览一下有那些数据流,比如tcp,http,arp,ssh
我们的思路还是先对http进行筛选和查看一下http的请求次数(点击统计然后找到http选这请求次数)
![CTF[MISC]入门------流量分析(一)_数据_21](https://file.cfanz.cn/uploads/png/2023/10/20/6/41N4992V30.png)
我们可以直观发现,test.php连接会话的次数比较多,那么我们接下来找test.php
找到后跟踪一下tcp流
![CTF[MISC]入门------流量分析(一)_流量分析_22](https://file.cfanz.cn/uploads/png/2023/10/20/6/1c7T18XRG7.png)
这个看到了->| 猜测是一个菜刀流量的php目马
![CTF[MISC]入门------流量分析(一)_php_23](https://file.cfanz.cn/uploads/png/2023/10/20/6/6638df2O32.png)
这里也就是做了文件目录的遍历,没有有用信息。对上面的url解码也没什么有用的信息。因为进行了14次会话,所有我们继续看后面的流。看到第五个流,会发现有很多16进制的数据,那么猜测这个就是传输的文件数据。
![CTF[MISC]入门------流量分析(一)_misc_24](https://file.cfanz.cn/uploads/png/2023/10/20/6/U0QW51c575.png)
我们可以将这段16进制数据拷贝下来放入Notepad++进行解码
![CTF[MISC]入门------流量分析(一)_php_25](https://file.cfanz.cn/uploads/png/2023/10/20/6/GF421f75c6.png)
解码后发现数据开头为PK,PK为压缩包的标识,后面还发现了flag.docx,那么我们可以保存数据,将后缀名改为.zip,直接点开后就能打开flag.docx文件找到flag
![CTF[MISC]入门------流量分析(一)_流量分析_26](https://file.cfanz.cn/uploads/png/2023/10/20/6/7961FP5beZ.png)
flag为2d6cb5b69212296f964dbc4f21171570
tips:本人为刚入门的小萌新,欢迎各位ctfer和师傅给点学习建议~










