【攻防世界】-流量分析

⭕、知识点

流量分析/追踪流/显示过滤器/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()将其转为可迭代对象

posted @ 2025-04-16 01:21  wyuu101  阅读(754)  评论(0)    收藏  举报