json - 用桃子模糊JSON

标签 json rest flask fuzzing

我通过阅读http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask在Flask中制作了一个基于REST的小型Web服务,现在我想使用Peach框架对JSON进行模糊处理。我知道它使用坑文件(XML)进行模糊测试,但是我的小脑子无法制作出符合我的目的的坑文件。我用谷歌搜索了很多关于桃坑的文件,但都徒劳无功。
我需要一个坑文件,或者任何人都可以告诉我们如何创建坑文件来模糊有效载荷。

最佳答案

there上有一个关于桃子的不错的教程。

需要定义几个元素:


描述您要发送的数据格式的数据模型。
描述模糊器行为的状态模型。
运行和监视处于模糊状态的应用程序的代理。
结合所有定义的测试。


这是本教程中的Peach Pit文件的示例。

<Peach xmlns="http://peachfuzzer.com/2012/Peach" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://peachfuzzer.com/2012/Peach ../peach.xsd">
  <DataModel name="DataHTER">
    <String value="HTER " mutable="false" token="true"/>
    <String value=""/>
    <String value="\r\n" mutable="false" token="true"/>
  </DataModel>
  <StateModel name="StateHTER" initialState="Initial">
    <State name="Initial">
      <Action type="input" ><DataModel ref="DataResponse"/></Action>
      <Action type="output"><DataModel ref="DataHTER"/></Action>
      <Action type="input" ><DataModel ref="DataResponse"/></Action>
    </State>
  </StateModel>
  <DataModel name="DataResponse">
    <String value=""/>
  </DataModel>
  <Agent name="RemoteAgent" location="tcp://127.0.0.1:9001">
  <!-- Run and attach windbg to a vulnerable server. -->
    <Monitor class="WindowsDebugger">
      <Param name="CommandLine" value="C:\Documents and Settings\Administrator\Desktop\vulnserver\vulnserver.exe"/>
      <Param name="WinDbgPath" value="C:\Program Files\Debugging Tools for Windows (x86)" />
    </Monitor>
  </Agent>
  <Test name="TestHTER">
    <Agent ref="RemoteAgent"/>
    <StateModel ref="StateHTER"/>
    <Publisher class="TcpClient">
      <Param name="Host" value="127.0.0.1"/>
      <Param name="Port" value="9999"/>
    </Publisher>
    <Logger class="File">
      <Param name="Path" value="Logs"/>
    </Logger>
  </Test>




如果要使用JSON数据模型,可以遵循recommendation of one of the peach architect

1)定义与JSON相对应的数据模型。

JSON对象

{
  "name":"John Smith",
  "address":{
    "address1":"555 Main St.",
    "city":"Seattle"
  }
}


资料模型

<DataModel>
  <String name="name" value="John Smith" />
  <Block name="address">
    <String name="address1" value="555 Main St." />
    <String name="city" value="Seattle" />
  </Block>
</DataModel>


然后,您必须使用C#编写自己的自定义发布者。这是一个tutorial

关于json - 用桃子模糊JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26263591/

相关文章:

json - 使用 NewtonSoft 获取特定的 Json 字段

javascript - Angular 加载更多推文 onclick

javascript - 单击按钮加载新页面(该按钮故意没有形式)

docker - 从多个容器创建单个Docker镜像

rest - FOSRestBundle Camel 键规范化器不起作用

python - Flask 参数转换器 'int' 对象不可调用

javascript - jQuery 如何在数据表中实现嵌套的 $.each()

json - 用 jsonlite 或其他东西从 R 编码一个 JSON 表达式

c# - 从动态 SQL 查询返回 JSON

java - CitrusFramework - 无法通过 cucumber java运行