Skip to main content
 首页 » 编程设计

json之用桃子模糊JSON

2025年12月25日21mengfanrong

我通过阅读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