豪利棋牌天天送6元
豪利棋牌天天送6元环保科技设备有限公司欢迎您!
豪利棋牌送9救济金_豪利棋牌天天送6元_豪利棋牌每天6元救济金
客服热线400-202-9588
Peach原理简介与实战:以Fuzz Web API为例

Peach原理简介与实战:以Fuzz Web API为例

  Fuzz即模糊测试,是一种使用大量的随机数据测试系统安全的方法,Peach就是一种这样的工具。网上零零星星有些介绍Peach的文章,也有少部分使用Peach测试某种文件的教程(其实就是直接翻译官方文档),并没有针对实际协议的真正测试。初学者,往往无从下手,本文从实战出发,穿插讲解Peach套件的一些语法和原理,让你线开始一段奇妙的模糊测试之旅!

  Peach是一个遵守MIT开源许可证的模糊测试框架,首个版本发布于2004年,使用python编写,第二版于2007年发布,被收购★◇▽▼•后,最新的第三版使用C#重写了整个框架,而且分为社区版和付费版。付费版本拥有更好的扩展功能,便于管理的Web界面,更加智能的建模机制,上手更容易。但是,鉴于广大同胞囊中羞涩,本次当然重点讲解社区版(免费版)。

  Peach Fuzz其实是一种黑盒测试方法,通过发送大量的随机数据到被测试系统,再结合监视器,检测系统的运行状态,来发现被测试系统或进程中,可能存在的安全问题。英文好的同学,可自行点击。

  安装其实很简单,对于本次的测◆■试来说,不需要一些花里胡哨的操作(比如,debug tools),对于Win10来说,更是如此。——看看就好,不必当真。

  所以,只需要一步,在官网上下载或者x64社区版本即可;任性的同学也可以下载Linux/Mac的版本。下载之后,解压。为了方便后续的测试,最好将peach的目录,加入到系统的环境变量。

  终于到了实战环节,这也是本文的另一个重点内容。这部分从0开始,一步步带你领略Peach的神奇魅力,更高级的功能,需要我们以后共同探索。

  设置代理,对目标接口进行抓包,这一步我相信大伙都会,不会的同学请自行移步Burpsuite抓包教程,我在这里就不重复造轮子了。

  我们的目的是要将抓取的数据包,转换成数据模型,在此之前,需要先保存该数据包为.bin文件。

  将文件保存在E:\MyPeachPit\这里只是指定一个文件夹,方便后面把所有的配置文件都放在一个目录中。你们可随意创建一个目录。

  创建一个文件,命名为 1-my_data.xml(命名请随意),同样放在E:\MyPeachPit\。首先是根标签,也就是描述文件,你也可以在属性中加入文件的整体注释信息。

  在标签中,创建数据模型,属性name可以随便起个名字,但是后面会用到。数据模型其实就是我们需要的fuzz对象。按照上一节抓取的数据包,一步步来编写这个数据模型,这是定制化fuzz的核心步骤。

  数据包的第一行:POST /formLogin.htm HTTP/1.1。请注意这里的空格,编写数据模型一定要一一对应。

  每个标签都可以起一个名字,为空也是可以的。value是实际的值,token字段用于分隔,表明这是一段用于分隔其他字符的标签。mutable,顾名思◇…=▲义,就是这段标签能否用来变异,也就是说,你到底想不想改变这段数据。HTTP报文头部后面几行数据以此类推,相信大家都会编写了。

  温馨提示1:HTTP头部报文和请求体报文之间,存在一个空行,在数据模型的编写中,也是要注意的。

  接下来是比较重要的HTTP请求体的内容,对应的数据模型了。常见的请求体主要有两种:XML和JSON。比如说,如果请求体是这样

  这里有几点注意下:双引号的转移字符是 剩下的内容以此内推。同样的,标签可以起名字,也可以为空,但是不能全为 name=“”但是像上图那样会有问题,会提示键重复。请删除 name=“”。

  温馨提示3:编写数据模型文件很容易出错,最好写一段★△◁◁▽▼就配合0×33节的步骤,对数据模型文件进行校验。

  数据模型文件编写的过程本身就是一项比较繁琐的工作,编写好的文件,也极有可能出错,PeachValidator.exe 应运而生。在编写好数据模型之后,我们需要使用Peach解压后,自带的该工具,验证编写好的数据模▪…□▷▷•型,与抓取的数据包bin文件内容是否一致。

  如上图所示,点击完刷新按钮之后,如果没有报错,说明数据模型文件编写正确,否则,需要根据错误提示,进行修▲●…△改。

  经历过数据模型的定制后,有没有觉得很麻烦?没办法,Peach后期的自动化依赖于前期的定制,所以数据模型的编写正确与否,至关重要。根据不同的API,数据模型一●旦编写好▲★-●之后,后续的步骤大同小异,可以套用。

  配置模型,顾名思义,是一些全局的配置信息,例如IP地址、端口之类的。你定义好了数据包,总得定义发送目标把。文件命名为fig(命名依然请随意)。

  状态文件,主要包括input和output两个动作。编写状态模型文件如下,并命名为3-my_state.xml

  综合测试模型文件,定义了一些关键要素,例如发•●包器、监控器以及测试策略等。相当于把所有文件综合成一个文件。实际上,针对一些简单的API,也可以把所有文件直接写在一个文件中。

  Publishers是Peach的I/O连接,它是实现输出、输入和调用等操作之间的管道。对于文件fuzzer来说,将使用一个称之为文件的Publisher,它允许我们对一个文件进行写操作。编写★▽…◇综合测试模型文件如下,命名为4-my_integrate.xml

  Test元素被用于配置一个指定的fuzzing测试,这个配置通过一个Publisher和其他选项(比如including/excluding等被变异的元素、Agen▪•★ts、fuzzing策略)组合成一个StateModel。多个test元素是支持的,在Peach命令行使用中,只需简单提供test元素的名字即可。

  至此,所有的xml文件编写告一段落,那么怎么测试这些xml文件是否编写正确呢?请看下节。

  输入以下命令,即可验证编写的所有文件是否符合Peach的标准。请注意参数 -1 是数字1,而不◆▼是字母l。

  第一次运行时,肯定会报错,需要根据错误提示,不断修正我们刚刚编写的测试套xml文件。

  如果打印出上面的信息,那么恭喜你,终于完成了测试套的编写!也就是完成了Peach的数据建模,基本上,你已经完成了99%的前期准备工作!

  为了实时监控数据流的变化状况,我们需要监控Peach发送给测试目标的数据。Burpsuite给我们提供了一个便捷的“监控器”。

  等fuzz完之后,筛选一下Burpsuite抓到的所有报文,就可以看到哪些畸形报文,对目标产生了影响。

  Peach最繁重的工作,都在协议的建模上,也就是编写测试套件,中途可能会出现很多错误,需要耐心△▪▲□△排查。关于一些更高级的用法,读者可自行查阅。本文中用到的所有,都是笔者亲自编写,并且进行了验证。祝大家都能用行之有效的方法,挖意想不到的大洞!

在线客服 : 服务热线:400-202-9588 电子邮箱: 6546546@qq.com

公司地址:山东省滕州市中央城

东莞市豪利棋牌天天送6元设备有限公司在系统化的工作流程基础上,提供以工业设计为核心的品牌价值链整合服务,一站式服务内容包括:产品设计研究、产品差异化定位、工业设计、结构设计、商业命名、品牌设计、后续模具支...

备案号:鲁ICP65985475-1
Copyright ©豪利棋牌天天送6元保科技设备有限公司 版权所有 | Sitemap | 网站导航