当前位置: 首页 > news >正文

20250415_信安一把梭_encode

Tags:流量分析, 应急响应, 数据解析, tcp, pyshark, 正则匹配, json, 信安一把梭

0x00. 题目

请分析某设备导出的流量包,找到攻击IP和正确密码(攻击IP以分析后的为主而不是流量包中的Source和Destination)

格式如下:例如攻击IP为192.168.1.1密码为admin,则flag{192.168.1.1_admin)


附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件

附件名称:20250415_信安一把梭_encode.zip

0x01. WP

1. 流量包分析

发现流量大多为TCP协议,其中部分有DATA数据,对应字段进行Base64解码后为json格式日志,其中目测info内容还需要进行Base64解码

image

2. 数据抽取

exp.py

# -*- coding: utf-8 -*-
import pyshark, os, re,time
import base64
import json# 为排除解决raiseRuntimeError(‘This event loop is already running’)报错问题
import nest_asyncio
nest_asyncio.apply()# Author: Jason.J.Hu# 初始化全局参数
strCapPath = "20250415_encode.pcapng"iHTTP=0
strFomula="((tcp) && (data))"cap = pyshark.FileCapture(strCapPath, display_filter=strFomula)print(time.strftime("%H:%M:%S", time.localtime()), "HTTP分析开始 ... ...")for pkt in cap:intRequestNumber = pkt.number# print("\r\tFrame Number: %s " % str(intRequestNumber), end="")for layer in pkt.layers:# 如果请求地址为120.142则对data节点提取数据后在进行json解析并对日志内容进行二次解析if pkt.ip.src=="192.168.120.142":if layer.layer_name == "DATA":  # 指定协议层sData=layer.get_field_value("data_data")  #指定字段            sData="".join((sData.split(":")))sData=bytes.fromhex(sData).decode('utf-8')sData=base64.b64decode(sData).decode('utf-8')sJSON = json.loads(sData)sLog = base64.b64decode(sJSON.get("info")).decode('utf-8')print(sLog)else:# 如果ip.src不是120.142,直接对data进行Base64解析if layer.layer_name == "DATA":  # 指定协议层sData=layer.get_field_value("data_data")  #指定字段            sData="".join((sData.split(":")))sData=bytes.fromhex(sData).decode('utf-8')sData=base64.b64decode(sData).decode('utf-8')print(sData)iHTTP += 1print("\r")
print(time.strftime("%H:%M:%S", time.localtime()), "HTTP分析结束。")

3. 日志分析

# 由于日志量较大,直接将结果输出到文件
python3 exp.py > log.log

发现爆破行为,返回值有Login xxx字样,筛选出Login Success结果并找到对应的请求

得到最终flag:flag{192.168.120.137_zxcv123}

image

http://www.hskmm.com/?act=detail&tid=13387

相关文章:

  • 日常练习另一部分
  • 每天一个安卓测试开发小知识之 (六)---常用的adb 命令第四期
  • SAP-ABAP中STOP,EXIT,CHECK,RETURN,CONTINUE,LEAVE,REJECT的区别
  • Linux开机启动进入紧急模式emergency mode的解决方法 - 规格严格
  • Arduino ide 软件 不建议大家使用 缺点多多
  • 视频融合平台EasyCVR国标GB28181视频诊断功能详解与实践
  • Refit Consul
  • 故障处理:Oracle 19.20未知BUG导致oraagent进程内存泄漏的案例处理
  • 麒麟服务器操作系统查询可用的内核版本以及安装和降级命令
  • esp32 stm32 ros2 三者区别
  • 20250406_信安一把梭_测试篇
  • 前端 10 个 JS 神 API,开箱即用
  • 故障处理:清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业
  • Web自动化测试智能体详解
  • Queue 配合Thread使用
  • MyEMS 进阶应用:从单厂能耗管理到集团跨区域能源数据协同分析
  • Playwright自动化测试框架与AI智能体应用
  • 以下内容在if判定的时候会被判定为 假
  • Python __init__.py文件
  • 20250330_信安一把梭_考试篇
  • VS Code配置Conda环境完整指南
  • 不同Windows系统中支持的最新.Net Framework/.NET版本
  • avalonia android TextBox多行模式下回车会关闭输入法问题
  • 每周读书与学习-初识JMeter 元件(二)
  • client-go限速之QPS、Burst 和 RateLimiter
  • 三度蝉联Gartner SASE领导者:唯一厂商的技术实力解析
  • 基础命令
  • 水水水 || CSP-S 2025 初赛
  • python实现网站登录会话脚本 - wanghongwei
  • HCM 性能优化函数