【攻防世界】-流量分析
⭕、知识点
流量分析/追踪流/显示过滤器/tashark的使用(转json)/sql注入语句/脚本编写(正则匹配)/ASCII码
一、题目
给了一个流量包

二、解题
1、查看协议分级,发现大多数是TCP流量,其中有部分HTTP

2、搜索关键字flag,定位到可疑流量包

跟踪流发现好多http包都是这样的语句,猜测是一个sql注入攻击的过程
3、筛选流量包,每次注入都从32号开始,说明32号之前的一个包就是上一个注入成功的字母,为了方便提取这些ascii码,就先导出对象再用tshark转为json再用脚本处理

4、tshark转json
tshark -r input.pcap -T json > output.txt
5、编写脚本得到flag
import json
import re
allData = json.load(open("output.json", encoding='utf-8'))
raw_list = []
ascii_code_list = []
for data in allData:
s = list(data["_source"]["layers"]["http"].keys())[0]
raw_list.append(int(re.findall(r'=(\d+)',s)[1]))
print(raw_list)
for i, e in enumerate(raw_list):
if e == 32 and i != 0:
ascii_code_list.append(raw_list[i-1])
ascii_code_list.append(raw_list[-1])
print(ascii_code_list)
flag = ""
for ascii_code in ascii_code_list:
flag += chr(ascii_code)
print(flag)

三、答案
flag{c2bbf9cecdaf656cf524d014c5bf046c}
四、总结
1、这题跟HiddenMessage那题的原理、解法很像
2、要重视正则表达式的学习,在处理字符串关键信息提取时有大作用
3、字典的.keys()返回所有键,但是需要用list()将其转为可迭代对象

浙公网安备 33010602011771号