iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >发送 EAPoL 数据包:请求身份
  • 884
分享到

发送 EAPoL 数据包:请求身份

2024-04-05 00:04:23 884人浏览 八月长安
摘要

来到编程网的大家,相信都是编程学习爱好者,希望在这里学习golang相关编程知识。下面本篇文章就来带大家聊聊《发送 EAPoL 数据包:请求身份》,介绍一下,希望对大家的知识积累有所帮助,助力实战开

来到编程网的大家,相信都是编程学习爱好者,希望在这里学习golang相关编程知识。下面本篇文章就来带大家聊聊《发送 EAPoL 数据包:请求身份》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发

问题内容

我尝试发送请求身份 eapol 数据包:

func eapol_requestIdentity(handle *pcap.Handle, iface *net.Interface, id uint8) error {
    
        len := uint16(5) // eap1 field length
    
        eap1 := layers.EAP{
            Code: layers.EAPCodeResponse,
            Id:   id,
            Type: layers.EAPTypeIdentity,
            TypeData: []byte{byte(layers.EAPTypeIdentity)}, // bugfix
            Length:   len,
        }
    
        eapol := layers.EAPOL{
            Version: 1,
            Type:    layers.EAPOLTypeEAP,
            Length:  eap1.Length,
        }
    
        eth := layers.Ethernet{
            SrcMac:       iface.HardwareAddr,
            DstMAC:       net.HardwareAddr{0x01, 0x80, 0xc2, 0x00, 0x00, 0x03},
            EtherNettype: layers.EthernetTypeEAPOL,
        }
    
        buf := Gopacket.NewSerializeBuffer()
        opts := gopacket.SerializeOptions{
            //FixLengths:       true, // doesn't work
            FixLengths:       false,
            ComputeChecksums: true,
        }
    
        gopacket.SerializeLayers(buf, opts, &eth, &eapol, &eap1)
        log.Printf("send EOPoL : Request Identity %u...", id)
        if err := handle.WritePacketData(buf.Bytes()); err != nil {
            log.Printf("Send err ", err)
            return err
        }
        log.Printf("send packet [OK]")
    
        return nil
    }

我不明白:如果我删除行 typedata: [] byte{byte(layers.eaptypeidentity)} 或行 type:layers.eaptypeidentity,我的应用程序发送了错误的数据包。 这正常吗?...为什么我必须为数据包中的同一字节设置两次数据?

此外,我尝试将 fixlengths 设置为 true,但发送的数据包中的长度字段是错误的...


正确答案


我对eap不是很熟悉,但是根据RFC,typetype-data是两个不同的字段:

0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     code      |  identifier   |            length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     type      |  type-data ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

因此,按理说,如果您遗漏了数据包的一部分,那么它就是“错误的”。

关于长度,gopacket在计算长度时似乎有一个bug。根据RFC

长度字段是两个八位字节,表示eap的长度 数据包包括代码、标识符、长度、类型和类型数据 字段

但是当fixlengthstrue时,gopacket only counts Type and Type-Data

if opts.FixLengths {
  e.Length = uint16(len(e.TypeData) + 1)
}

+1 应该是 +5,所以看来您发现了一个错误。

编辑:看来您已经填写了错误报告:https://GitHub.com/google/gopacket/issues/931

今天关于《发送 EAPoL 数据包:请求身份》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 发送 EAPoL 数据包:请求身份

本文链接: https://www.lsjlt.com/news/596435.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 发送 EAPoL 数据包:请求身份
    来到编程网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《发送 EAPoL 数据包:请求身份》,介绍一下,希望对大家的知识积累有所帮助,助力实战开...
    99+
    2024-04-05
  • Android发送Okhttp请求并返回数据
    大家好!今天给大家分享的是Android通过okhttp发送请求并返回数据。  一、Okhttp? Okhttp是目前Android主流的网络请求框架之一。话不多说,我们直接来看Okhttp怎么使用。 首先我们要在项目中添加Okhtt...
    99+
    2023-09-11
    okhttp android java
  • javascript发送ajax请求参数
    JavaScript 是互联网上普遍使用的编程语言之一,可以用来为网站添加动态交互性。而 AJAX 是一种在不刷新整个页面的情况下,与服务器进行异步数据交换的技术。在很多网站上,我们都能够看到通过 AJAX 获取数据的例子。如何使用 Jav...
    99+
    2023-05-14
  • HTTP POST请求发送form-data格式的数据
    1、业务需求 发送请求给第三方服务的接口,且请求报文格式为multipart/form-data的数据。支持复杂类型的参数,包含文件类型 2、 依赖包 org.projectlomboklombokcom.alibabafastjson1....
    99+
    2023-08-19
    java servlet 开发语言
  • 原生JS如何发送异步数据请求
    这篇文章主要介绍原生JS如何发送异步数据请求,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在做项目的时候,有时候需要用到异步数据请求,但是如果这个时候没有框架的依赖,就需要用到原生J...
    99+
    2024-04-02
  • 使用HttpURLConnection发送POST请求并携带请求参数
    1、先创建URL对象,指定请求的URL地址。 URL url = new URL("http://example.com/api"); 2、调用URL对象的openConnection()方法创建HttpURLConnection对象。 ...
    99+
    2023-08-31
    java spring intellij-idea spring boot
  • C#发送Get、Post请求(带参数)
    目录Get请求Post请求Get请求 1.简单发送Get请求 /// <summary> /// 指定Url地址使用Get 方式获取全部字符串 /// </su...
    99+
    2024-04-02
  • javascript怎么发送ajax请求参数
    这篇文章主要介绍“javascript怎么发送ajax请求参数”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript怎么发送ajax请求参数”文章能帮助大家解决问题。先通过 JavaSc...
    99+
    2023-07-06
  • 通道未在第一个 API 请求上发送数据
    问题内容 我有一个 SSE 端点,它将数据发送到前端,并且该数据是从另一个 API 端点检索的。我对 go 中的 channels 仍然很陌生,似乎我必须触发 API 端点两次,以便 ...
    99+
    2024-02-05
  • Vue-cli中post请求发送Json格式数据方式
    目录post请求发送Json格式数据举个例子解决post请求无法携带数据问题post请求发送Json格式数据 这里就不详细说明了 举个例子 var param = new URLSe...
    99+
    2024-04-02
  • nGrinder中如何在GET请求中发送参数
    本篇文章为大家展示了nGrinder中如何在GET请求中发送参数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在GET请求脚本中添加添加信息头、cookies和自定义参数,有两种方式:一种是在UI界...
    99+
    2023-06-05
  • python实现请求数据包签名
    前言: 渗透测试遇到对请求体进行签名的情况,如果这是一个app的话,也能理解,但如果是一个web系统,对这种敏感数据做加密,并且对请求体做了签名,就会非常无语。还好在js中能找到了加...
    99+
    2024-04-02
  • Linux数据包的发送过程
    本篇内容介绍了“Linux数据包的发送过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!socket层   &...
    99+
    2023-06-16
  • Android向node.js编写的服务器发送数据并接收请求
    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下首先时node.js服务器端代码var http = require("http"); var fs = require("fs"); var queryS...
    99+
    2023-05-30
    android node.js 服务器
  • C# 通过 HttpWebRequest发送数据以及服务器通过Request请求获取数据
    C# 通过 HttpWebRequest发送数据以及服务器通过Request请求获取数据, 后台请求的三种类型"application/x-www-form-urlencoded"和"multipar...
    99+
    2023-09-24
    c# 服务器 开发语言
  • 在Go语言中如何解决并发网络请求的请求身份认证和访问授权问题?
    在Go语言中如何解决并发网络请求的请求身份认证和访问授权问题?随着互联网的快速发展,越来越多的应用需要进行网络请求,涉及到用户身份认证和访问授权问题。如何在Go语言中解决并发网络请求的请求身份认证和访问授权问题,成为了开发者们面临的一项重要...
    99+
    2023-10-22
    身份认证 并发 网络请求 关键词:Go语言 访问授权
  • 第一个请求不在 goroutine 函数的开头发送
    哈喽!今天心血来潮给大家带来了《第一个请求不在 goroutine 函数的开头发送》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang...
    99+
    2024-04-04
  • axios发送post请求springMVC接收不到参数怎么办
    小编给大家分享一下axios发送post请求springMVC接收不到参数怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!axios发送post请求时,出现了参数后台接收不到的情况,分...
    99+
    2024-04-02
  • 怎么处理使用fetch发送post请求时的参数
    这篇文章主要为大家展示了“怎么处理使用fetch发送post请求时的参数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么处理使用fetch发送post请求时的...
    99+
    2024-04-02
  • 微信小程序的数据存储与Django等服务发送请求 讲解
    目录官方文档快速归纳 存取改删1.wx存储数据到本地以及本地获取数1.1 wx.setStorageSync(string key, any data) 存(同步)1.2 wx.se...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作