文件不是很大,粗略看了一下,发现了shell.php字段
筛选为http流量,追踪TCP查看
直接得到flag flag{This_is_a_f10g}
下载解压得到数据包,比较小只有7kb
只有TCP和HTTP协议流量,追踪TCP流查看,发现flag.tar.gz压缩包
使用kali集成的 binwalk提取压缩包,
binwalk -e caidao.pcapng 文件路径
得到 1E43文件
这是一个压缩包,可以在windows修改后缀为zip直接打开
得到flag key{8769fe393f2b998fa6a11afe2bfcd65e}
题目提示
数据包 TCP有大量的标红状态,猜测为攻击机对目标进行的扫描爆破等操作
过滤得到TCP协议数据包,观察发现 4023为最后一条标红数据
往下看呀看呀看呀,追踪TCP流查看,数据包过多,一无所获
尝试过滤一些数据包,观察发现,此期间大部分是端口4444与端口1040之间的通信,过滤数据包
tcp && ! tcp.port eq 4444 or ! tcp.port eq 1040 and ip.addr eq 192.168.116.138
发现在最后端口 35880 和 1234 还存在通信,追踪流查看
可疑的base64数据,解码查看,bingo,得到flag CCTF{do_you_like_sniffer}
题目提示找getshell的流量,所以应该是拿到shell了,执行操作,所以应该从后往前找又高效~
题目描述如下:
httppan.baidu.coms1cwwdVC
有一天皓宝宝没了流量只好手机来共享,顺便又从手机发了点小秘密到电脑,你能找到它吗?
手机共享
推断为obex协议(蓝牙传输协议) 过滤
发现了一个压缩包,和图片
使用kali集成的 binwalk 分离文件
binwalk -e Blatand_1.pcapng
得到如下
打开 右下角的 flag.gif 得到 flag SYC{this_is_bluetooth}
过滤得到HTTP流量,追踪HTTP流,发现一个用户通过qq邮箱上传了一个fly.rar
压缩包大小通过 size字段可知为 525701
继续过滤,从数据包的结构上下图五个数据包是数据传输的过程。点开可以看到第一个到第四个的长度为131436,最后一个为1777,应该是剩余的最后一部分数据
http && http.request.method== POST
但是131436*4+1777=527521 != 525701,这是由于分块传输多带了TCP的文件头,每个文件头大小规范一致
所以文件头的大小就是
131436*4+1777=527571-525701=1820/5=364 需要每个文件去掉其364字节的文件头。
提取数据,选中对应数据包,按顺序重命名为 12345
linux下使用 dd 命令 合成文件
语法:dd [选项]
if =输入文件(或设备名称)。
of =输出文件(或设备名称)。
ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。
skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。
bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。
即:(dd if=文件名 bs=输入输出块的大小 skip=偏移量 of=新的文件名)
dd if=1 bs=1 skip=364 of=1.1
dd if=2 bs=1 skip=364 of=2.1
dd if=3 bs=1 skip=364 of=3.1
dd if=4 bs=1 skip=364 of=4.1
dd if=5 bs=1 skip=364 of=5.1
cat拼接得到压缩包 fly.rar
cat 1.1 2.1 3.1 4.1 5.1 > fly.rar
fly.rar打开报错,存在加密,winhex打开
伪加密,修改加密位,将0x84位置改为0x80即可
解压得到flag.txt文件,打开乱码,修改后缀为 exe 运行发现.....苍蝇
使用kali 集成的binwalk 查看,发现可疑图片
binwalk flag.exe
使用 foremost 分离图片,在一堆苍蝇图片底部中找到一个二维码
foremost -v -i flag.exe
扫描得到flag flag{m1Sc_oxO2_Fly}
下载得到 Access.log文件,Unicode解码发现是 dvwa靶场的sql盲注过程
搜索flag字段得到如下,sqlmap通过二分法注入爆破对应字段
网上copy的脚本,提取字符
# coding:utf-8
import re
import urllib
f = open('C:\\access.log','r')
lines = f.readlines()
datas = []
for line in lines:
t = urllib.unquote(line)
if '1765' in t and 'flag' in t: # 过滤出与flag相关,正确的猜解
datas.append(t)
flag_ascii = {}
for data in datas:
matchObj = re.search( r'LIMIT 0,1\),(.*?),1\)\)>(.*?) AND', data)
if matchObj:
key = int(matchObj.group(1))
value = int(matchObj.group(2))+1
flag_ascii[key] = value # 使用字典,保存最后一次猜解正确的ascii码
flag = ''
for value in flag_ascii.values():
flag += chr(value)
print flag
得到flag flag{sqlm4p_15_p0werful}
题目描述:
黑客攻击了Weblogic应用,请分析攻击过程,找出Weblogic的主机名。Tip:主机名为十六进制。
直接过滤得到http数据包,追踪HTTP流,观察发现爆破口令,后台部署war包上传shell得到权限
使用wireshark 搜索 hostname字符串关键字,数据包658 662 存在该关键字,发现命令执行操作
如图所示,得到16进制flag,flag{6ad4c5a09043}
题目描述如下
打开流量包,看到很多注入语句,判断出sqlmap使用二分法进行搜索布尔盲注
网上的脚本,copy使用 需要先导出分组解析结果 为 CSV文件格式
import re
import urllib.parse
# 更改为自己从wireshark提取出的csv文件地址
f = open(r"D:\temp\sqlmap.csv")
lines = f.readlines()
datas = []
# 转码, 保存进datas
for line in lines:
datas.append(urllib.parse.unquote(line))
lines = [] # 懒得改, 就复用一下, 这个lines保存注入flag的url
for i in range(len(datas)): # 提取出注入flag的url
if datas[i].find("isg.flags ORDER BY `value` LIMIT 0,1),1,1))>64") > 0:
lines = datas[i:]
break
flag = {}
# 用正则匹配
macth1 = re.compile(r"LIMIT 0,1\),(\d*?),1\)\)>(\d*?) HTTP/1.1")
macth2 = re.compile(r'"HTTP","(\d*?)","HTTP/1.1 200 OK')
for i in range(0, len(lines), 2): # 因为有返回响应, 所以步长为2
get1 = macth1.search(lines[i])
if get1:
key = int(get1.group(1)) # key保存字符的位置
value = int(get1.group(2)) # value保存字符的ascii编码
get2 = macth2.search(lines[i + 1])
if get2:
if int(get2.group(1)) > 450:
value += 1
flag[key] = value # 用字典保存flag
f.close()
result = ''
for value in flag.values():
result += chr(value)
print(result)
# ISG{BLind_SQl_InJEcTi0N_DeTEcTEd}
最后得到flag ISG{BLind_SQl_InJEcTi0N_DeTEcTEd}
题目描述:
某种特殊的协议,尝试得知为 icmp协议 过滤
搜索flag,得到下图效果
查看第一个数据包,发现提示
继续观察,发现数据包依次存在单个字符
拼接得到 flag flag{Icmp_backdoor_can_transfer-some_infomation}