码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • HTTP协议中Gzip格式的流量分析与识别


    背景

    在协议分析过程中,经常会发现gzip压缩的数据,例如在HTTP协议中,在HTTP头中会标示,内容编码为gzip、DEFLATE。

    但是,还有很多情况,例如一些非HTTP协议,特别是私有协议中,数据同样采用gzip压缩,但是,流量中并未写明数据是gzip压缩格式,这就给分析带来了困难。

    如何解决这个困难呢?只能从数据本身着手了,需要了解gzip压缩后数据的特征和标记,以确定哪些数据是gzip压缩。

    gzip的基础是DEFLATE,它其实是多种压缩文件格式的简称。在RFC1952中对gzip格式进行了定义。

    认识

    对gzip格式的数据,通常使用zlib库就可以解压缩。

    gzip压缩格式的数据的识别,依靠的是gzip格式内的一些特征,gzip格式如下图:

    具体如下:

    10字节的头,包含幻数、版本号以及时间戳,对应ID1、ID2、CM、FLG、MTIME、XFL、OS;

    可选的扩展头extra  data ,如原文件名;

    文件体compressed blocks,包括DEFLATE压缩的数据;

    8字节的尾注,包括CRC-32校验和CRC32以及未压缩的原始数据长度ISIZE。

    识别

    在文件头中,ID1和ID2分别为固定值0x1F,0x8B;而CM则定义了压缩使用的算法,目前仅一种,即DEFLATE压缩,对应值为0x08;FLG、MTIME、XFL、OS分别为标记、时间、可选扩展头标记、操作系统标记。

    对gzip格式的识别,依靠的就是gzip的起始3字节,因为这三个字节目前是固定的,只有我们在数据流中,发现了1F 8B 08,则表示找到了gzip编码数据的起始了,继续分析就简单了。

    附一个测试数据,如果你转码正确,那就对了

    \x1f\x8b\x08\x00\xff\x04rc\x02\xff\x01\x12\x00\xed\xff\xe6\x88\x91\xe6\x98\xaf\xe6\xb5\x8b\xe8\xaf\x95\xe6\x95\xb0\xe6\x8d\xae\xb8_\x11\xaa\x12\x00\x00\x00

     解码后为我是测试数据

    参考文献

    https://mohen.blog.csdn.net/article/details/127879939

  • 相关阅读:
    UI 自动化测试框架:PO 模式+数据驱动!
    如何使用CSS和JavaScript实施暗模式?
    【实践】随机森林算法与决策树的效果对比(含Python代码)
    iOS系统下轻松构建自动化数据收集流程
    Redis分布式锁解锁案例讲解
    生产者消费者问题
    centos 安装ngnix mysql php
    Redis(主从复制、哨兵模式、集群)概述及部署
    uniapp字符串转base64,无需导入依赖(多端支持)
    微信小程序formdata格式请求
  • 原文地址:https://blog.csdn.net/u012206617/article/details/127880293
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号