玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > 【Python资讯】Python业界新闻 > 正文内容

使用Python语言编写的Fuzzing第三方框架

Python入门佳作 经典教程的全新修订 10个项目引人入胜
玩蛇网推荐图文教程:python黑客多线程扫描器

Kitty是一款用Python语言编写的开源的模块化、可扩展的模糊测试框架,灵感来源于OpenRCE's Sulley 和 Michael Eddington的 (现在为Deja Vu Security的) Peach Fuzzer 。
 

  我们开始写Kitty的时候,目的是帮助我们fuzz特殊的目标。也就就是运行于非TCP/IP通道上的私有和内部协议。

  一个通用、抽象的框架应该包含所有我们能想到的模糊测试过程中用到的所有通用功能,并且能方便用户扩展,以便用来攻击特定目标。

  它的特性

  心中有了这样的目标,以下的特性就非常重要:

  1.   模块性:fuzzer的每一个部分都是独立的,这意味着你能够用相同的监视代码监控不同的程序,用相同的载荷生成工具(aka Data Model)生成的数据可以在不同的信道中传递;
  2.   扩展性:如过你想测试新的东西,不需要修改Kitty的核心代码。即便不是所有,大部分功能应该在用户代码中实现。这包括监视,控制以及和被fuzz的目标的通信;
  3.   丰富的数据模型:数据模型的核心要丰富,能够描述高级的数据结构,包括字符串,哈希,长度,条件及其它。而且和其它框架一样,还要设计好,将来需要的时候可以扩展;
  4.   状态性:支持多阶段的模糊测试。不仅要能描述单独消息的载荷应该是什么样,还要能描述消息的顺序,甚至按照顺序进行fuzzing;
  5.   客户端和服务端fuzzing:假设你有一个配对的程序栈,你可以对服务端和客户端进行fuzz。这听起来是一个很高的要求,但实际上不是:只需要你像通常一样能够和目标通信即可;
  6.   跨平台:可以在Linux,OS X和Windows上运行。
     

  它不是XX  好吧,Kitty不是一个模糊测试器。它包含了还未实现的特定的协议或者通信通道。你可以用它写一个自己的模糊测试器,你同样可以用其它的基于Kitty的代码,但是它不是一个开箱即用的模糊测试器。获取Kitty模型实现的一个好去处是Katnip。

  Katnip

  Kitty,作为一个框架,实现了模糊测试器的主循环,并且提供了用于创建一个完整的fuzzing会话所需要的数据模型和基类的语法。
 

  然而,特定类的实现并不是Kitty框架的一部分。这意味着,Kitty定义了与目标进行数据传递的接口和基类,但是没有提供HTTP,TCP或者UART之上的数据传输实现。各种类的实现可以在附赠的软件仓库Katnip Github中找到。

推荐:
[北京]Python Web工程师实习生
北京]高薪加期权招资深Python开发工程师

 

玩蛇网文章,转载请注明出处和来源网址:http://www.iplaypython.com/news/a5776.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网PythonQQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
出炉日期:2016-03-29 10:36 玩蛇网 www.iplaypython.com

我要分享到:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules