如何使用 LibAFL 和 libdesock 构建高性能的网络模糊器?

主要观点:现有网络模糊测试解决方案在各方面都存在困难,速度慢且难以深入探索目标,为此作者构建了高性能网络模糊测试器来解决这些问题。
关键信息

  • 输入生成方面:开发自己的输入表示和变异器,使用[LibAFL],将协议消息表示为令牌流,实现多层输入表示。
  • 消息传递方面:选择[libdesock]进行“去套接字”操作,利用共享内存实现高效的消息传递,通过自定义输入钩子将数据复制到应用程序。
  • 结果对比:与[AFLNet]对比,作者的工具在单核心下执行速度约为 1200 exec/s 且可利用多核,覆盖范围增加数百行,还发现了已大量模糊测试代码中的多个漏洞。
    重要细节
  • 在 FTP 协议的消息交换中,可通过替换命令中的数字、替换命令、插入更多文本等方式进行变异。
  • [libdesock]的钩子功能可用于自定义输入通道,通过Token的拼接和特定分隔符实现单个消息的传递。
  • 作者的模糊测试器实现细节可在Github上查看。
阅读 6
0 条评论