AFLNet入门教学——测试RTSP协议实现Live555(Ubuntu)

1、简介

  • 本文旨在使用AFLNet对RTSP协议实现Live555进行模糊测试。
  • 实验环境为:Ubuntu22.04.4
  • AFLNet安装参考:AFLNet入门教学——安装(Ubuntu22.04.4)-CSDN博客

2、安装Live555

  • 本次实验采取的是live555在2018年8月28日上传的版本,版本号为ceeb4f4。
  • 克隆Live555。
    • # Clone live555
      git clone https://github.com/rgaufman/live555.git
  • 切换版本号。
    • # 进入live555目录
      cd live555
      # 切换live555版本
      git switch -c ceeb4f4
  • 打补丁。
    • # 使用补丁
      patch -p1 < $AFLNET/tutorials/live555/ceeb4f4.patch
    • 【注】ceeb4f4.patch补丁除了生成使用afl-clang-fast++执行覆盖反馈启用检测的Makefile之外,还进行了一个小改动,以禁用Live555中的随机会话ID生成。在未修改的Live555版本中,每个连接都会生成一个会话ID,后续从客户端发送的请求中必须包含该会话ID,否则请求会被服务器很快拒绝。这会导致模糊测试时路径不确定性增加,因为同一消息序列可能会执行不同的服务器路径,原因是会话ID在变化。通过修改Live555使其始终生成相同的会话ID,可以解决这个特定问题。
  • 生成makefile文件并编译。
    • # 生成Makefile
      ./genMakefiles linux
      # 编译
      make clean all
  • live555源代码编译成功后,所需要的被测服务器(testOnDemandRTSPServer)和RTSP客户端(testRTSPClient)都处于testProgs文件夹中。
  • 将测试中所用的资源复制到testProgs文件夹中。
    • # 去到服务器和客户端的文件目录下
      cd testProgs
      # 复制相同的媒体资源到服务器文件目录下
      cp $AFLNET/tutorials/live555/sample_media_sources/*.* ./
  • 启动服务器
    • ./testOnDemandRTSPServer 8554
  • 启动客户端
    • # 在另一个终端中启动客户端
      ./testRTSPClient rtsp://127.0.0.1:8554/wavAudioTest

3、开始实验

3.1、准备初始种子
  • AFLNet是基于变异的fuzzer,需要初始种子作为输入,即消息序列。
  • 因此我们首先捕获示例客户端 (testRTSPClient)和被测服务器 (testOnDemandRTSPServer)之间的真实通信流量。例如,捕获下面常见的真实流量作为初始种子:服务器根据请求将WAV格式的音频文件流式传输到客户端。
  • 启动被测服务器。
    • # 去到服务器和客户端的文件目录下执行
      ./testOnDemandRTSPServer 8554
  • 打开新的终端,使用tcpdump捕获服务器和客户端之间的通信流量。
    • sudo tcpdump -i lo -w rtsp.pcap port 8554
  • 打开新的终端,启动客户端。
    • ./testRTSPClient rtsp://127.0.0.1:8554/wavAudioTest
  • 在客户端运行结束后,ctrl+c停止tcpdump捕获。
  • 客户端与服务器之间的消息序列将被保存在rtsp.pcap文件中。该文件可以使用wirehsark打开,并提取客户端发给服务器的消息序列(请求),并将请求序列作为AFLNet的种子输入。
  • 使用wireshark打开rtsp.pcap文件。
    • # 打开rtsp.pcap文件
      wireshark rtsp.pcap
  • 提取请求序列。
  • Wireshark将以纯文本形式显示所有请求和响应。

  • 只保留客户端向服务器发送的请求。
  • 以二进制的形式保存请求序列,单击“另存为”并将其保存到文件中,例如rtsp_requests_wav.raw。保存到 /RTSP/live555/testProgs/in-rtsp下。
3.2、Fuzz
  • 运行模糊测试。
    • cd $workspace./RTSP/live555/testProgs
      # 使用AFLNet的afl-fuzz进行模糊测试
      afl-fuzz -d -i ./in-rtsp/ -o out-live555 -N tcp://127.0.0.1/8554 -x $AFLNET/tutorials/live555/rtsp.dict -P RTSP -D 10000 -q 3 -s 3 -E -K -R ./testOnDemandRTSPServer 8554
      
  • 报错:
    • [-] Hmm, your system is configured to send core dump notifications to anexternal utility. This will cause issues: there will be an extended delaybetween stumbling upon a crash and having this information relayed to thefuzzer via the standard waitpid() API.To avoid having crashes misinterpreted as timeouts, please log in as rootand temporarily modify /proc/sys/kernel/core_pattern, like so:echo core >/proc/sys/kernel/core_pattern[-] PROGRAM ABORT : Pipe at the beginning of 'core_pattern'Location : check_crash_handling(), afl-fuzz.c:8340
  • 解决办法:
    • # 获得管理员权限
      sudo su root
      # 修改配置
      echo core >/proc/sys/kernel/core_pattern
      # 退出
      exit
  • 重新运行。
    • afl-fuzz -d -i ./in-rtsp/ -o out-live555 -N tcp://127.0.0.1/8554 -x $AFLNET/tutorials/live555/rtsp.dict -P RTSP -D 10000 -q 3 -s 3 -E -K -R ./testOnDemandRTSPServer 8554

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/36438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nacos漏洞汇总

1 nacos介绍 1.1 nacos是啥 Alibaba Nacos是阿里巴巴推出来的一个新开源项目&#xff0c;是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集&#xff0c;可以快速实现动态服务发现、服…

【Knowledge Graph Context-Enhanced Diversified Recommendation(MSDM2024)】

Knowledge Graph Context-Enhanced Diversified Recommendation 摘要 推荐系统&#xff08;RecSys&#xff09;领域已被广泛研究&#xff0c;以通过利用用户的历史交互来提高准确性。 尽管如此&#xff0c;这种对准确性的持续追求常常导致多样性的减少&#xff0c;最终导致众所…

全网最强MyBatisPlus教程 | 万字长文爆肝MyBatisPlus

MyBatisPlus 今日目标 基于MyBatisPlus完成标准Dao的增删改查功能 掌握MyBatisPlus中的分页及条件查询构建 掌握主键ID的生成策略 了解MyBatisPlus的代码生成器 1&#xff0c;MyBatisPlus入门案例与简介 这一节我们来学习下MyBatisPlus的入门案例与简介&#xff0c;这个和其他…

在线AI聊天对话机器人,答你所问!

随着AI人工智能技术的不断进步&#xff0c;AI聊天对话机器人已经成为我们日常生活中常用的工具。这些智能助手不仅能够提供信息查询、生活娱乐、学习辅导等服务&#xff0c;还能通过自然语言处理和机器学习技术理解用户的需求&#xff0c;提供个性化的回答和建议。下面小编就和…

选择第三方软件测试机构做验收测试的好处简析

企事业单位在自行开发完软件系统或委托软件开发公司生产软件之后&#xff0c;有一个必经流程就是验收测试&#xff0c;以验证该产品是否符合用户需求、是否可以上线。为了客观评估所委托生产的软件质量&#xff0c;第三方软件测试机构往往成为企事业单位做验收测试的首选&#…

如何有效降低云消息使用成本?涂鸦Pulsar云消息史诗级大更新来了!超级干货攻略快收藏

月末了&#xff0c;相信大家都会有信用卡额度超支的担忧&#xff0c;生怕一不留神就会超出预算&#xff0c;并且事后还需要仔细核对消费情况。类似的焦虑&#xff0c;也会出现在使用涂鸦 Pulsar 云消息服务时。虽然涂鸦 Pulsar 云消息能满足开发者对设备各类事件实时性和持久化…

ADI-DSP|在指定内存写入数据

一、LDF文件设置内存空间 user_data_test { TYPE(BW RAM) START(0x00380010) END(0x0039bfff) WIDTH(8) }//usr data dxe_user_data_bw BW{INPUT_SECTION_ALIGN(4)INPUT_SECTIONS( $OBJS_LIBS(user_data) )} > user_data_test 二、在C文件中设置数据 /************…

使用LabVIEW和示波器测试IGBT参数

使用LabVIEW和示波器测试绝缘栅双极型晶体管&#xff08;IGBT&#xff09;参数的综合解决方案。过程包括硬件设置、示波器和其他必要设备的配置&#xff0c;以及开发LabVIEW程序以自动化数据采集、过滤、关键参数计算和结果显示。该方法确保了IGBT测试的准确性、可靠性和高效性…

巡检机器人智能联网,促进工厂自动化

随着工业4.0和智能制造的快速发展&#xff0c;企业引入自动化设备和智能机器人以提高生产效率和降低人工成本已成为大势所趋。其中&#xff0c;巡检机器人作为一种能够在复杂和危险环境中进行自动巡检的设备&#xff0c;受到了广泛关注。如何实现巡检机器人稳定、安全的联网是每…

【光伏开发】工商业光伏的优势

随着全球对可再生能源的日益重视和环保意识的增强&#xff0c;工商业光伏作为一种清洁、高效的能源利用方式&#xff0c;正在得到广泛的推广和应用。工商业光伏系统通过安装在工厂、仓库、办公楼等工商业场所的太阳能电池板&#xff0c;将太阳能转化为电能&#xff0c;以满足工…

C# OpenCvSharp 入门

摘要 C# OpenCvSharp 是一个基于OpenCV&#xff08;开源计算机视觉库&#xff09;的C#封装库&#xff0c;它提供了一组功能强大的工具和函数&#xff0c;用于图像处理、计算机视觉和计算机图形学等领域。通过使用OpenCvSharp库&#xff0c;您可以在C#应用程序中轻松地实现各种图…

SpringBoot整合Nacos并开启鉴权

关于Nacos的介绍就不在多说&#xff0c;不知道的可以看看Nacos的官网&#xff1a;nacos.io    1、下载安装Nacos 下载地址&#xff1a;https://nacos.io/download/nacos-server/&#xff0c;下载后将Nacos解压到本地磁盘即可&#xff0c;Nacos使用Java语言开发&#xff0c;因…

Ant Design Vue Upload 自定义上传 customRequest,这一篇很详细

Upload 常用属性和方法 示例上传接口 # 接口文档 url https://www.mocky.io/api/main/upload 头部 x-token: xxx 参数 file: File // 上传的文件 flag: xxx // 上传的标识// 文件上传 api 函数简单封装 export const uploadApi ({ file }) > {const formData new Fo…

Markdown的使用

这里写自定义目录标题 欢迎使用Markdown新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注…

iOS之如何创建.framework静态库

番外&#xff1a;想要查看如何创建.a静态库可前往看我iOS之如何创建.a静态库-CSDN博客这篇文章。 一、创建framework项目 创建framework工程要选择iOS --> Cocoa Touch Framework输入项目名称PrintFramework也是编译生成的framework的名称。framework的名称也可以以后在项目…

CID引流电商:传统电商破局的新动力

摘要&#xff1a;CID引流电商为传统电商带来破局新机遇&#xff0c;通过跨平台引流、精准定位和高效转化&#xff0c;解决了流量获取难、成本高的问题&#xff0c;提升了销售业绩和市场竞争力。CID引流电商助力传统电商在激烈竞争中保持领先&#xff0c;推动行业持续发展。 随…

WEB攻防【5】——JS项目/Node.js框架安全/识别审计/验证绕过

1、test.php和test.html对比 #知识点&#xff1a; 1、原生JS&开发框架-安全条件 2、常见安全问题-前端验证&未授权 #详细点: 1、什么是Js渗透测试? 在Javascript中也存在变量和函数&#xff0c;当存在可控变量及函数调用即可参数漏洞 JS开发的WEB应用和PHP、java.NET…

学习笔记——动态路由——RIP(RIP路由汇总介绍)

四、RIP路由汇总介绍 当网络中路由器的路由条目非常多时&#xff0c;可以通过路由汇总&#xff08;又称路由汇聚或路由聚合&#xff09;来减少路由条目数&#xff0c;加快路由收敛时间和增强网络稳定性。 路由汇总的原理是&#xff0c;同一个自然网段内的不同子网的路由在向外…

recogito-js:用于文本注释/图像注释的前端插件

创建批注&#xff1a; 继续批注&#xff1a; 右侧批注列表&#xff1a; 1、功能与应用&#xff1a; 文本注释&#xff1a;recogito-js可以将注释功能添加到网页上&#xff0c;或者作为构建完全自定义注释应用程序的工具箱。图像注释&#xff1a;除了文本注释外&#xff0c;它还…

WITS核心价值观【创新】篇|从财务中来,到业务中去

「客尊」、「诚信」、「创新」 与「卓越」 是纬创软件的核心价值观。我们秉持诚信态度&#xff0c;致力于成为客户长期且值得信赖的合作伙伴。持续提升服务厚度&#xff0c;透过数字创新实践多市场的跨境交付&#xff0c;助客户保持市场领先地位。以追求卓越的不懈精神&#xf…